Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouEsther Julio Alterado mais de 9 anos atrás
1
GERENCIAMENTO DE MEMÓRIA EM JAVA ALUNOS: ANTÔNIO FLÁVIO(in memorian) E HEDLEY LUNA
2
ORGANIZAÇÃO Alocação de memória em java Windows – RESULTADOS JAVA – RESULTADOS C++ – COMPARAÇÃO JAVA X C++ LINUX – RESULTADOS JAVA – RESULTADOS C++ – COMPARAÇÃO JAVA X C++ COMPARAÇÃO LINUX X WINDOWS CONCLUSÕES
3
MOTIVAÇÃO BRIGAS C++ X JAVA BRIGAS WINDOWS X LINUX BRIGAS SOFTWARE LIVRE X SOFTWARE PROPRIETÁRIO
4
INTRODUÇÃO AO GERENCIAMENTO DE MEMÓRIA EM JAVA A GERÊNCIA PROPRIAMENTE DITA É “ESCONDIDA” DO PROGRAMADOR. QUEM GERENCIA TODA A MEMÓRIA É A JVM. SE O PROGRAMADOR QUISER(OU PRECISAR) SABER COMO A MEMÓRIA ESTÁ SENDO ALOCADA ELE PODE USAR O COMANDO: javap –c nomeDaClasse
5
IMAGEM ARQUITETURA DA JVM
6
INTRODUÇÃO AO GERENCIAMENTO DE MEMÓRIA EM JAVA EM JAVA, ASSIM COMO EM OUTRAS LINGUAGENS, A MEMÓRIA DINÂMICA FICA NO HEAP, E A ESTÁTICA(LINEAR) NA STACK. CADA THREAD TEM SEU PRÓPRIO PC(PROGRAM COUNTER) DENTRO DA JVM, E ESSE PC É ATUALIZADO A CADA INSTRUÇÃO DO BYTECODE.
7
IMAGEM PROGRAM COUNTER
8
IMAGEM HEAP
9
INTRUDUÇÃO AO GERENCIAMENTO DE MEMÓRIA EM JAVA COM EXCEÇÃO DA CLASSE STRING, TODAS AS OUTRAS INSTANCIAÇÕES PRECISAM DO “new” OU DO “newInstance()”. ASSIM COMO C++, JAVA TAMBÉM TEM DESTRUTOR! NO JAVA TAMBÉM EXISTEM MEMORY LEAKS, APESAR DA JVM. A DESALOCAÇÃO DE MEMÓRIA É FEITA ATRAVÉS DO GARBAGE COLLECTOR.
10
IMAGEM CRIAÇÃO DE OBJETO
11
IMAGEM DESALOCAÇÃO DE OBJETO
12
INTRODUÇÃO AO GERENCIAMENTO DE MEMÓRIA EM JAVA ALGORITMOS DE GARBAGE COLLECTION: – REFERENCE COUNTING ALGORITHM – CYCLE COLLECTING ALGORITHM. VANTAGENS: – DIMINUI MEMORY LEAKS – DIMINUI SEGMENTATION FAULTS DESVANTAGENS: – ROTINAS DE GC GERALMENTE SÃO PESADAS – DIMINUIÇÃO DA EFICIÊNCIA
13
JAVA WINDOWS
14
CÓDIGO DO VETOR ESTÁTICO public class VetorEstatico { public static void main(String[] args) { int []vetor = new int [10000]; int y = 200; while(y>=0){ for(int i=0;i<vetor.length;i++){ vetor[i]=0; } y--; }
15
GRÁFICO VETOR ESTÁTICO JAVA - WINDOWS
16
CÓDIGO DO VETOR DINÂMICO(ARRAYLIST) import java.util.ArrayList; import java.util.List; public class VetorDinamicoArrayList{ public static void main(String[] args) { List lista = new ArrayList (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; } FORMA NÃO OTIMIZADA
17
GRÁFICO VETOR DINÂMICO(ARRAYLIST) JAVA - WINDOWS
18
CÓDIGO VETOR DINÂMICO(VECTOR) import java.util.List; import java.util.Vector; public class VetorDinamicoVector{ public static void main(String[] args) { List lista = new Vector (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; } FORMA NÃO OTIMIZADA
19
GRÁFICO VETOR DINÂMICO(VECTOR) JAVA - WINDOWS
20
CÓDIGO LISTA ENCADEADA import java.util.LinkedList; public class ListaEncadeada{ public static void main(String[] args) { LinkedList lista = new LinkedList (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; }
21
GRÁFICO LISTA ENCADEADA JAVA - WINDOWS
22
GRÁFICO COMPARATIVO ESTRUTURAS EM JAVA - WINDOWS
23
C++ WINDOWS
24
CÓDIGO VETOR ESTÁTICO #include int main() { int vetor[1000]; int y = 200; while(y>=0) { for(int i=0;i<1000;i++) { vetor[i]=0; } y--; }
25
GRÁFICO VETOR ESTÁTICO C++ - WINDOWS
26
CÓDIGO VETOR DINÂMICO #include int main() { int *vetor = new int[10000]; int y = 200; while(y>=0) { for(int i=0;i<10000;i++) { vetor[i]=0; } y--; }
27
GRÁFICO VETOR DINÂMICO C++ - WINDOWS
28
CÓDIGO LISTA ENCADEADA void add(const T &x, bool no_fim=true) { nodo *q = new nodo(x); if (cnt==0) ptraiz=q; else { if (no_fim) { nodo *p = ptraiz; while (p->prox!=0) p=p->prox; p->prox=q; } else { q->prox = ptraiz; ptraiz = q; } cnt++; }
29
LISTA ENCADEADA C++ - WINDOWS
30
GRÁFICO COMPARATIVO ESTRUTURAS C++ - WINDOWS
31
JAVA LINUX
32
CÓDIGO VETOR ESTÁTICO public class VetorEstatico { public static void main(String[] args) { int []vetor = new int [10000]; int y = 200; while(y>=0){ for(int i=0;i<vetor.length;i++){ vetor[i]=0; } y--; }
33
VETOR ESTÁTICO JAVA - LINUX
34
CÓDIGO VETOR DINÂMICO(ARRAYLIST) import java.util.ArrayList; import java.util.List; public class VetorDinamicoArrayList{ public static void main(String[] args) { List lista = new ArrayList (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; } FORMA NÃO OTIMIZADA
35
VETOR DINÂMICO(ARRAYLIST) JAVA - LINUX
36
CÓDIGO VETOR DINÂMICO(VECTOR) import java.util.List; import java.util.Vector; public class VetorDinamicoVector{ public static void main(String[] args) { List lista = new Vector (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; } FORMA NÃO OTIMIZADA
37
VETOR DINÂMICO(VECTOR) JAVA - LINUX
38
CÓDIGO LISTA ENCADEADA import java.util.LinkedList; public class ListaEncadeada{ public static void main(String[] args) { LinkedList lista = new LinkedList (); int y = 200; while(y>=0){ for(int i=0;i<lista.size();i++){ lista.add(0); } y--; }
39
LISTA ENCADEADA JAVA - LINUX
40
COMPARATIVO ENTRE ESTRUTURAS - LINUX
41
C++ LINUX
42
CÓDIGO VETOR ESTÁTICO C++ - LINUX #include int main(int argc,char []argv) { int vetor[10000];; int y = 200; while(y>=0) { for(int i=0;i<10000;i++) { vetor[i]=0; } y--; }
43
VETOR ESTÁTICO C++ - LINUX
44
CÓDIGO VETOR DINÂMICO C++ - LINUX #include int main(int argc,char []argv) { int *vetor = new int[10000]; int y = 200; while(y>=0) { for(int i=0;i<10000;i++) { vetor[i]=0; } y--; }
45
VETOR DINÂMICO C++ - LINUX
46
CÓDIGO LISTA ENCADEADA C++ - LINUX void add(const T &x, bool no_fim=true) { nodo *q = new nodo(x); if (cnt==0) ptraiz=q; else { if (no_fim) { nodo *p = ptraiz; while (p->prox!=0) p=p->prox; p->prox=q; } else { q->prox = ptraiz; ptraiz = q; } cnt++; } bool del(const
47
LISTA ENCADEADA C++ - LINUX
48
COMPARATIVO ENTRE ESTRUTURAS C++ - LINUX
49
JAVA X C++
50
Comparativos Windows VETOR ESTÁTICO VETOR DINÂMICO(ARRAYLIST) LISTA ENCADEADA
51
JAVA X C++ - VETOR ESTÁTICO - WINDOWS
52
JAVA X C++ - VETOR DINÂMICO- WINDOWS
53
JAVA X C++ - LISTA ENCADEADA - WINDOWS 16%(média)
54
COMPARATIVOS LINUX VETOR ESTÁTICO VETOR DINÂMICO(ARRAYLIST) LISTA ENCADEADA
55
JAVA X C++ - VETOR ESTÁTICO - LINUX 4x(média)
56
JAVA X C++ - VETOR DINÂMICO - LINUX 49x(média)
57
JAVA X C++ - LISTA ENCADEADA - LINUX
58
WINDOWS X LINUX
59
COMPARATIVO WINDOWS X LINUX
60
PERGUNTAS?!!!
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.