A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

GERENCIAMENTO DE MEMÓRIA EM JAVA ALUNOS: ANTÔNIO FLÁVIO(in memorian) E HEDLEY LUNA.

Apresentações semelhantes


Apresentação em tema: "GERENCIAMENTO DE MEMÓRIA EM JAVA ALUNOS: ANTÔNIO FLÁVIO(in memorian) E HEDLEY LUNA."— Transcrição da apresentação:

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?!!!


Carregar ppt "GERENCIAMENTO DE MEMÓRIA EM JAVA ALUNOS: ANTÔNIO FLÁVIO(in memorian) E HEDLEY LUNA."

Apresentações semelhantes


Anúncios Google