http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning JVM em Java 8
Guia do Mochileiro que não pode faltar
TDC 2014 SP - Luan...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Ressalva/Disclaimer
● ESTA APRESENTAÇÃO REFLETE A OPINIÕES E
PROPOSTAS PESSOAIS...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Introdução | Batepapo
http://slidesha.re/1kQU0Yg @BR_LuanCestari
O que veremos
● OpenJDK
● Overview sobre desempenho
● Principais mudanças JVM e...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
O que NÃO veremos (infelizmente)
● Muitos detalhes das diversas formas de
tunni...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
OpenJDK
● JCP (Java Community Process)
● JSR (Java Specification Requests)
● JE...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
OpenJDK
● Comunidades
○ SouJava
○ JUGs
● Participe =D
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Desempenho
● Tempo de resposta
● Logs
○ Erros de memória
■ OutOfMemoryError, Le...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Arquitetura de memória OpenJDK
Metaspace
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Principais mudanças na versão 8
● Começando pelos arquivos gerados .class:
○ A ...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Mudanças | Parâmetros e arquitetura JVM
● Flags para JVM usar o Advanced Encryp...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Mudanças | Compact Profiles
● JEP 161: Compact Profiles
○ JVM pode rodar e comp...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Mudanças | Ferramentas no JDK
● jdeps
○ Análise de dependências
■ libraries e i...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Mudanças | Outros
● Security
○ Algoritmos mais fortes para criptografia e cifra...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning e Profiling
● Top-Down / Bottom-Up
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning e Profiling| Bottom-up
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning e Profiling| Bottom-up
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning e Profiling| Bottom-up
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Tunning e Profiling| Top-Down
● Mesma análise das versões anteriores
○ Uso do j...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
OpenJDK sempre melhorando!
● Exemplo no update 8u40
○ JEP 208: Java Packager Im...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Futuro
● Twitter
● Ferramentas de análise da JVM
○ Baixíssimo uso de CPU e memo...
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Muito Obrigado!
http://slidesha.re/1kQU0Yg @BR_LuanCestari
Dúvidas?
http://slidesha.re/1kQU0Yg
@BR_LuanCestari
Próximos SlideShares
Carregando em…5
×

Tunning jvm em java 8

629 visualizações

Publicada em

TDC 2014 SP - Nesta apresentação você vai descobrir mais detalhes de como é que a JVM funciona, dando enfase em entender e aprofundar seus conhecimentos na questão de Garbage Collector (GC) e assuntos relacionados, como o gerenciamento de memória, threads, etc. Existem ferramentas disponíveis das próprias JVMs como também terceiras para podemos encontrar os melhores parâmetros e tirar o máximo da JVM como também identificarmos problemas no próprio código sendo executado. Links:
http://onthejvm.blogspot.com.br/2013/05/java-gc-tuning-for-high-frequency.html
http://blog.mgm-tp.com/2013/03/garbage-collection-tuning/
http://jvm-options.tech.xebia.fr/?
https://dl.dropboxusercontent.com/u/1704203/HotSpot%20JVM%20GC%20options%20cheatsheet%20-%20A4%201%2B2.pdf
http://stas-blogspot.blogspot.com.br/2011/07/most-complete-list-of-xx-options-for.html
http://reins.altervista.org/java/A_Collection_of_JVM_Options_MP.html
http://www.pingtimeout.fr/2012/05/jvm-options-complete-reference.html
http://www.ourdailycodes.com/2013/09/inside-java-jvm-memory-structure-3.html
http://www.ourdailycodes.com/2013/09/inside-java-jvm-memory-structure-2.html
http://www.ourdailycodes.com/2013/08/inside-java-jvm-memory-structure.html
http://www.petefreitag.com/articles/gctuning/
https://github.com/mariusaeriksen/heapster
https://code.google.com/p/gperftools/?redir=1
https://www.youtube.com/watch?v=szvHghWyuoQ - twitter tools
https://www.youtube.com/watch?v=Yg6_ulhwLw0 - twitter tools graph
https://www.youtube.com/watch?feature=player_detailpage&v=zwBLgQ1_WuE#t=3135 - vmware tunning jvm
http://www.slideshare.net/aszegedi/everything-i-ever-learned-about-jvm-performance-tuning-twitter
http://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html
http://www.brendangregg.com/linuxperf.html

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
629
No SlideShare
0
A partir de incorporações
0
Número de incorporações
5
Ações
Compartilhamentos
0
Downloads
20
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Tunning jvm em java 8

  1. 1. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning JVM em Java 8 Guia do Mochileiro que não pode faltar TDC 2014 SP - Luan Cestari
  2. 2. http://slidesha.re/1kQU0Yg @BR_LuanCestari Ressalva/Disclaimer ● ESTA APRESENTAÇÃO REFLETE A OPINIÕES E PROPOSTAS PESSOAIS DO AUTOR SOBRE O TEMA, PODENDO NÃO REFLETIR NECESSARIAMENTE A OPINIÂO / PONTO DE VISTA DE QUAISQUER ORGANIZAÇÃO/EMPRESA LIGA OU NÃO COM O AUTOR ● THIS PRESENTATION REFLECTS AUTHOR'S PERSONAL OPINIONS AND IDEAS ON THE TOPIC AND MAY NOT REFLECT NECESSARILY THE OPINION/ VIEWPOINT OF ANY ORGANIZATION / COMPANY WITH/WITHOUT RELATIONSHIP WITH THE AUTHOR.
  3. 3. http://slidesha.re/1kQU0Yg @BR_LuanCestari Introdução | Batepapo
  4. 4. http://slidesha.re/1kQU0Yg @BR_LuanCestari O que veremos ● OpenJDK ● Overview sobre desempenho ● Principais mudanças JVM e Tunning ○ Overview da Arquitetura de memória OpenJDK ○ Principais mudanças na versão 8 ○ Top-Down e Botton-Up profiling e tunning
  5. 5. http://slidesha.re/1kQU0Yg @BR_LuanCestari O que NÃO veremos (infelizmente) ● Muitos detalhes das diversas formas de tunning e profiling ○ Motivo: tempo =(
  6. 6. http://slidesha.re/1kQU0Yg @BR_LuanCestari OpenJDK ● JCP (Java Community Process) ● JSR (Java Specification Requests) ● JEP (JDK Enhancement Proposals) https://java.net/projects/adoptajsr/pages/Home https://www.jcp.org/en/home/index
  7. 7. http://slidesha.re/1kQU0Yg @BR_LuanCestari OpenJDK ● Comunidades ○ SouJava ○ JUGs ● Participe =D
  8. 8. http://slidesha.re/1kQU0Yg @BR_LuanCestari Desempenho ● Tempo de resposta ● Logs ○ Erros de memória ■ OutOfMemoryError, Leaks, GC, crash ○ Uso de recursos ■ CPU, Disco, Rede, Banco de dados, etc ○ Concorrência
  9. 9. http://slidesha.re/1kQU0Yg @BR_LuanCestari Arquitetura de memória OpenJDK Metaspace
  10. 10. http://slidesha.re/1kQU0Yg @BR_LuanCestari Principais mudanças na versão 8 ● Começando pelos arquivos gerados .class: ○ A versão major do .class foi para 52 (0x34 hex) ■ ohhh =) ○ Magic number continua o mesmo (CA FE BA BE) ○ mudanças de estrutura por causa das JSR-292, JSR-308 e JSR-335 ■ JSR 335: Lambda Expressions ■ JSR 308:Type Annotations and the Checker Framework ■ JSR 292: Supporting Dynamically Typed Languages on the Java (Da Vinci Machine project and InvokeDynamic)
  11. 11. http://slidesha.re/1kQU0Yg @BR_LuanCestari Mudanças | Parâmetros e arquitetura JVM ● Flags para JVM usar o Advanced Encryption Standard (AES) da intel ○ -XX:+UseAES -XX:+UseAESIntrinsics ● Remoção da Permgen (e inclução da Metaspace) ○ -XX:MaxMetaspaceSize
  12. 12. http://slidesha.re/1kQU0Yg @BR_LuanCestari Mudanças | Compact Profiles ● JEP 161: Compact Profiles ○ JVM pode rodar e compilar usar diferentes perfis que minimizam memória ○ http://docs.oracle. com/javase/8/docs/technotes/guides/compactprofiles /
  13. 13. http://slidesha.re/1kQU0Yg @BR_LuanCestari Mudanças | Ferramentas no JDK ● jdeps ○ Análise de dependências ■ libraries e interno(-jdkinternals) ● Diagnóstico remoto com JMX ● Novas opções no jarsigner ● Nova java man page
  14. 14. http://slidesha.re/1kQU0Yg @BR_LuanCestari Mudanças | Outros ● Security ○ Algoritmos mais fortes para criptografia e cifragem ○ melhora na parte de entropia de geração dos números randomicos
  15. 15. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning e Profiling ● Top-Down / Bottom-Up
  16. 16. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning e Profiling| Bottom-up
  17. 17. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning e Profiling| Bottom-up
  18. 18. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning e Profiling| Bottom-up
  19. 19. http://slidesha.re/1kQU0Yg @BR_LuanCestari Tunning e Profiling| Top-Down ● Mesma análise das versões anteriores ○ Uso do jvisualvm / jconsole para análise ○ Uso das memórias ■ GC Log (usando -verbosegc -XX:PrintGCDetails ) ■ Frequência e tempo de GC ■ Algoritmo de GC ○ Alocação de memória ■ LargePages (-XX:LargePageSizeInBytes=4m ) ○ Demais opções JVM ○ Thread Dump (jstack) ○ Heap Dump (jmap -dump ...) ○ Etc
  20. 20. http://slidesha.re/1kQU0Yg @BR_LuanCestari OpenJDK sempre melhorando! ● Exemplo no update 8u40 ○ JEP 208: Java Packager Improvements ○ JEP 156: G1 GC: Reduce need for full GCs
  21. 21. http://slidesha.re/1kQU0Yg @BR_LuanCestari Futuro ● Twitter ● Ferramentas de análise da JVM ○ Baixíssimo uso de CPU e memory footprint ○ Triggers ○ Sample e contínuo ○ etc
  22. 22. http://slidesha.re/1kQU0Yg @BR_LuanCestari Muito Obrigado!
  23. 23. http://slidesha.re/1kQU0Yg @BR_LuanCestari Dúvidas? http://slidesha.re/1kQU0Yg @BR_LuanCestari

×