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

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

Flávia Falcão <fmcf2@cin.ufpe.br> Java Performance Flávia Falcão <fmcf2@cin.ufpe.br>

Apresentações semelhantes


Apresentação em tema: "Flávia Falcão <fmcf2@cin.ufpe.br> Java Performance Flávia Falcão <fmcf2@cin.ufpe.br>"— Transcrição da apresentação:

1 Flávia Falcão <fmcf2@cin.ufpe.br>
Java Performance Flávia Falcão

2 Roteiro Performance Performance no desenvolvimento de Software
Benchmark Profiling HotSpot Virtual Machine Garbage Collection Referências

3 Performance Performance computacional : -Qual o melhor algoritmo?
Memória -Quanta memória o software necessita para rodar? Startup Time Escalabilidade -Um servidor pode funcionar bem com 50 usuários ,mas como ele se comporta com 1000? Performance Percebida

4 Performance nas Fases de Desenvolvimento
As fases do tradicional modelo de Desenvolvimento Orientado a Objetos,com uma fase adcional “performace profiling”que determina as caracteristicas de performance do sistema.

5 Benchmarking Devem ser capazes de:
Comparar a performance de soluções alternativas; Retratar a performance de aplicações. Macro benchmark :testam uma grande parte do sistema. Micro benchmark :que testam um especifico aspecto do sistema.

6 Profiling Determinam que áreas do sistema consomem maior parte dos recursos : - Que métodos são chamados mais vezes? - Que métodos usam a maior porcentagem do tempo? - Que métodos estão chamando os métodos mais usados? - Que método aloca mais memória?

7 Profiling :Exemplo Desde Java2 SDK 1.2, inclui básico profiling,que permitem verificar onde o programa consome mais tempo : Java –Xrunhprof [opcoes]<MainClassName>

8 Exemplo: Saida do profiling
..... percent live alloc'ed stack class rank self accum bytes objs bytes objs trace name % 73.33% [I % 80.71% [C % 86.20% [B % 88.28% java.lang.Object % 90.12% [S % 91.74% java.lang.Class ...

9 HotSpot Virtual Machine
A Tecnologia Java HotSpot foi desenvolvida com o objetivo de maximizar o desempenho de programas executados em máquinas virtuais java .Atualmente a Sun oferece dois produtos baseados nesta tecnologia ,a solução cliente e a solução servidor. Desde a versão 1.3 do J2SE SDK todas as implementações da Sun incluem a versão HotSpot Client VM; a HotSpot Server VM é opcional.

10 HotSpot VM :Arquitetura

11 Client & Server VM

12 HotSpot VM :Client x Server
Há duas partes nos sistemas HotSpot : runtime e compiler. As versões cliente e servidor são diferenciadas pelo seu compilador. A versão cliente é otimizada para que as aplicações tenham uma inicialização rápida e consumam menos memória, enquanto que a versão servidor é otimizada para desempenho.

13 HotSpot VM : Runtime Interpretador de bytecode:
-Um simples compilador JIT compila todos os metodos antes deles serem executados.A HotSpot runtime executa muitos métodos em modo puramente interpretado. Gerenciamento de memória Garbage Colletion Sincronização rápida de threads

14 HotSpot VM :Compiler Executa o codigo imediatamente usando o interpretador. À medida que a execução prosegue ,analisa o código para detectar os hot spots. Compilação para codigo nativo Inlining dos metodos otimizados Otimizações:eliminação de codigo morto e de subexpressões comuns... Consome menos memória Mais lento que um compilador JIT ,mas a qualidade das otimizações valem a pena.

15 Garbage Collection A JDK inclui seis diferentes algoritmos de Garbage Collection; e mais de doze opcões de comandos para configurar o garbage collection. Os beneficios trazidos pelo GC tem um custo que podem causar impacto na performance : pausas.

16 Fatores que afetam o GC Tempo de vida dos objetos:
- temporários, intermediários, longos. Tipo de objetos -Tamanho, complexidade. Relação entre objetos -Dificuldade de determinar e percorrer as referências de objetos.

17 Generational Collection
Divide a heap em multiplas áreas (gerações) - Objetos gerenciados por idades. - Objetos novos morrem mais cedo : GC mais frequentemente - Gerações mais velhas coletadas com menos frequencia -Diferentes Gerações usam diferentes algoritimos : Copying , Mark-Sweep , Mark-Compact, Incremental, Parallel Copy, Concurrent, Parallel Scavenge...

18 HotSpot VM :Heap Layout

19 Profiling Garbage Collection
Exemplo : java -Xloggc:log.txt –verbose:gc <mainclass> 0.000: [GC 511K->127K(1984K), secs] 0.146: [GC 639K->131K(1984K), secs] 0.230: [GC 642K->137K(1984K), secs] 0.387: [GC 649K->256K(1984K), secs] 19.726: [GC 768K->328K(1984K), secs] 55.513: [GC 840K->380K(1984K), secs]

20 GC Portal As informações output do verbose:gc são pouco amigaveis.
O GC Portal provê uma analisa do output do verbose:gc , através de mecanismo como : - analise e relatórios - gráfico e etc..

21 Referências http://java.sun.com/docs/books/performance/


Carregar ppt "Flávia Falcão <fmcf2@cin.ufpe.br> Java Performance Flávia Falcão <fmcf2@cin.ufpe.br>"

Apresentações semelhantes


Anúncios Google