Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf ·...
Transcript of Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf ·...
![Page 1: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/1.jpg)
ANÁLISE DE DESEMPENHO DASANÁLISE DE DESEMPENHO DASIMPLEMENTAÇÕES DE COLETA DELIXO DA MÁQUINA VIRTUAL JAVA
Luciano Jerez ChavesOrientador: Prof. Marcelo Lobosco, D.Sc.
Universidade Federal de Juiz de ForaUniversidade Federal de Juiz de Fora12 de Dezembro de 2007
![Page 2: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/2.jpg)
AGENDA
ContextualizaçãoçMotivaçãoAlgoritmos de coleta de lixoColetores na Máquina Virtual JavaAvaliação de desempenhoConclusõesTrabalhos futuros
2
![Page 3: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/3.jpg)
CONTEXTUALIZAÇÃO
O gerenciamento de memória:g
ManualM l kMemory leakDangling reference
AutomáticoGarbage CollectionMecanismo antigoSmalltalk, Lisp, ML, Prolog, Java, C#
3
![Page 4: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/4.jpg)
MOTIVAÇÃO
Coletores de Lixo:SeguroEficienteT E F üê iTempo x Espaço x Freqüência
ObjetivosObjetivosAvaliar algoritmos de coleta distintos em diferentes classes de aplicaçõesE t do a Má i a Vi t al Ja aEstudo na Máquina Virtual Java
4
![Page 5: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/5.jpg)
A COLETA DE LIXO
Três perguntas:p g
Como identificar o lixo?Id tifi ã lí it t átiIdentificação explícita ou automática
Quando coletar o lixo?Esperar até o último momentoRealizar uma coleta contínua
Como realizar a limpeza?ReusoReciclagemg
5
![Page 6: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/6.jpg)
CONTAGEM DE REFERÊNCIAS
IncrementalIncrementalParaleloTempo real
São pouco eficientesNão são efetivosNão são efetivos
6
![Page 7: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/7.jpg)
ALGORITMOS DE RASTREAMENTO
Duas etapas:pDetecção do lixo
Conhecimento do grafo de relações entre os objetos
LiberaçãoDiferentes abordagens como compactação e cópia
Para a liberação...
Marcação e varredura (Mark-Sweep)
Marcação e compactação (Mark-Sweep Compact) 7
![Page 8: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/8.jpg)
ALGORITMOS DE RASTREAMENTO
Para a liberação...çColeta com cópia (copying collection)
8
![Page 9: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/9.jpg)
ALGORITMOS DE RASTREAMENTO
Rastreamento incrementalAbstração em três cores (branco, preto e cinza)Treadmill:
9
![Page 10: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/10.jpg)
COLETA POR GERAÇÕES
Gerações novas e antigasGerações novas e antigasColetas distintas em cada geraçãoGerações não são independentes.
10Referências entre objetos de gerações diferentes
![Page 11: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/11.jpg)
COLETORES NA MÁQUINA VIRTUAL JAVA
C Coletor serial:Coleta com cópia na geração jovemColeta com compactação na geração estável e na p ç g çgeração permanente 11
![Page 12: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/12.jpg)
COLETORES NA MÁQUINA VIRTUAL JAVA
Coletor Paralelo
Paralelismo em uma ou ambas as geraçõesParalelismo em uma ou ambas as geraçõesPequena fragmentação na geração estável
12
![Page 13: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/13.jpg)
COLETORES NA MÁQUINA VIRTUAL JAVA
Coletor concorrente
Modo incremental13
![Page 14: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/14.jpg)
DIVISÃO DE MEMÓRIA DA HEAP
14
![Page 15: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/15.jpg)
AVALIAÇÃO DE DESEMPENHO
Indicadores:Throughput
15g p
FootprintTempos de execução e de pausas
![Page 16: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/16.jpg)
AVALIAÇÃO DE DESEMPENHO - GCOLD
GCOldModela aplicações com uso da geração estávelTamanho pequeno de heap utilizado
Throughput baixo para todas as configuraçõesmelhores resultados para o CMS
FootprintMaiores para os coletores CMS clientMenores para os coletores CMS serverp
Destaque para o CMS paralelo na geração jovem 4 melhores indicadores
16
![Page 17: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/17.jpg)
AVALIAÇÃO DE DESEMPENHO - GCBENCH
GCBenchModela carga inicial de dados na heap e alocações e liberação de objetos durante a execuçãoDois tamanhos de heap analisados (256MB e 512MB)Dois tamanhos de heap analisados (256MB e 512MB)
Coletas maiores no início e no fim da execuçãoOs coletores clientes não fizeram uso da memória disponível, salvo os CMSSem restrição de memória, a melhor opção é o coletor Sem restrição de memória, a melhor opção é o coletor servidor paraleloCom restrição de memória, o coletor serial cliente obteve os melhores resultadosobteve os melhores resultados
17
![Page 18: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/18.jpg)
AVALIAÇÃO DE DESEMPENHO - GCBENCH
Comportamento anormal no coletor paralelo na geração p p g çestável para heap de 256MB
18
![Page 19: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/19.jpg)
1012
Tempo de execução (seg) Heap 256MBHeap 512MB
02468
1 2 3 4 5 6 7 8 9 10 11 12 13 14 151 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
80
Throughput (%) Heap 256MBHeap 512MB
20
40
60
Footprint (MB) Heap 256MB
01 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
200300400500600
p ( )Heap 512MB
0100
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
19
![Page 20: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/20.jpg)
AVALIAÇÃO DE DESEMPENHO -JGFCREATEBENCH
JGFCreateBenchModela aplicações com alocações de vida curta
Th h Throughputs Melhores resultados com coletor paralelo cliente e servidor
Footprints (consumo médio baixo)Altos para os coletores seriais e paralelos clientes Pequeno para o coletor cliente paralelo na geração estável e no servidor serial
Coletores CMS pouco eficientesColetor servidor serial (10) teve os melhores resultados
20
![Page 21: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/21.jpg)
50525456
Tempo de execução (seg)
4244464850
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
80
100
Throughput (%)
0
20
40
60
80
300
Footprint (MB)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
50100150200250
2101 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
![Page 22: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/22.jpg)
AVALIAÇÃO DE DESEMPENHO -JGFSERIALBENCH
JGFSerialBench
707274
Tempo de execução (seg) Heap 256MB
Heap 512MB
606264666870
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
98
Throughput (%) Heap 256MB
Heap 512MB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
86889092949698
8486
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
22
![Page 23: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/23.jpg)
AVALIAÇÃO DE DESEMPENHO -JGFFORKJOINBENCH
JGFForkJoinBenchAplicação multithreadAvalia criação e junção de threadsT h d h dTamanho de heap grande
Throughputs e footprints praticamente os mesmos g p f p ppara n threadsDiferenças nos indicadores de tempos
Os coletores paralelos cliente e o dois coletores seriais foram os que melhor gerenciaram a memória.
23
![Page 24: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/24.jpg)
25303540
Tempo de execução (seg) 2 threads3 threads4 threads
05
10152025
100
Throughput (%) 2 threads3 threads4 threads
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
98,5
99
99,5
Footprint (MB) 2 threads3 threads4 h d
981 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
203040506070 4 threads
01020
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Configuração
24
![Page 25: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/25.jpg)
AVALIAÇÃO DE DESEMPENHO - GENEID
GeneIdAplicação multithreadExecução com dois tamanhos de heap: 512 e 1024 MB
Nenhuma aplicação fez uso máximo da memóriaThroughputsg p
Os coletores CMS mantiveram os melhoresColeta paralela na geração estável com os piores valores
FootprintsFootprintsMelhores valores com o coletor paralelo na geração estável
Os coletores serias foram os mais constantes com os dois tamanhos de heap e todos os números de threadsdois tamanhos de heap e todos os números de threads 25
![Page 26: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/26.jpg)
AVALIAÇÃO DE DESEMPENHO -JGFSORBENCH
JGFSORBenchSó há alocação de memória no início da aplicaçãoHeap grande para avaliar o processo de expansão da mesma pelo coletormesma pelo coletor
Melhores throughputs com coletor CMS incrementalConsumo de memória e tempos de execução uniformes para cada uma das n threads avaliadasMelhores resultados de tempo com os coletores Melhores resultados de tempo com os coletores paralelos na geração jovemPara os outros indicadores o coletor CMS incremental foi superiorfoi superior
26
![Page 27: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/27.jpg)
AVALIAÇÃO DE DESEMPENHO -JGFMONTECARLOBENCH
JGFMonteCarloBenchAlocação linear crescente de memória independente do número de threadsColetas menores e maiores intercaladasColetas menores e maiores intercaladas
Coletores paralelos para a geração estável tiveram os menores throughputs e os maiores tempos de execução.Destaque para o coletor CMS incremental
Melhor throughput, footprint e menores tempos de pausasOs melhores tempos de execução ficaram com o CMS defaultf
27
![Page 28: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/28.jpg)
AVALIAÇÃO DE DESEMPENHO
Coletor SerialRealiza mudanças no tamanho da heap e geraçõesGeração estável predominanteB lt d l ã ã ótiBons resultados no geral, mas não são sempre ótimos
Coletor ParaleloColetor ParaleloMelhores resultadosCom paralelismo na geração jovem ou estável
T dê i t d ã l li dTendência em manter grande a geração paralelizadaGeração estável grande resulta em grandes pausas
Paralelo na geração estável é o pior28
![Page 29: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/29.jpg)
AVALIAÇÃO DE DESEMPENHO
Coletor ConcorrenteObjetivos de pausa alcançadoAproveitam melhor a heap disponível
Coletor Concorrente incrementalBons resultados somente em: Bons resultados somente em:
JGFSORBenchJGFMonteCarloBench
Consumo maior de tempoConsumo maior de tempo
29
![Page 30: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/30.jpg)
CONCLUSÕES
Mecanismos automáticos de gerenciamento geliminam erros de gerenciamento se bem programadosN l lh lt d l t No geral, melhores resultados com coletor paralelo na geração jovemPiores resultados com o coletor paralelo na Piores resultados com o coletor paralelo na geração estávelUma boa opção de escolha é deixar que a JVM f j d dfaça os ajustes antes de tentar uma mudança
30
![Page 31: Orientador: Prof. Marcelo Lobosco, D.Sc. Universidade ...luciano/files/final-grad-pres.pdf · ANÁLISE DE DESEMPENHO DAS IMPLEMENTAÇÕES DE COLETA DE LIXO DA MÁQUINA VIRTUAL JAVA](https://reader034.fdocumentos.tips/reader034/viewer/2022042913/5f48edda5760ae07f21c4713/html5/thumbnails/31.jpg)
TRABALHOS FUTUROS
Avaliar:os mesmos aplicativos em máquinas com apenas um processadordesempenho para heap com tamanho inicial maiordesempenho para heap com tamanho inicial maioralgumas metas de tempo máximo para os coletores paralelosgerenciamento dos dados estatísticos das coletas já realizadasproporções diferentes entre gerações da heap
31