O documento apresenta um guia sobre tunning da JVM em Java 8. Ele discute as principais mudanças na versão 8 da JVM como a remoção da Permgen e inclusão da Metaspace, novas ferramentas como jdeps, e técnicas de profiling e tunning como análise de uso de memória e frequência de GC.
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.
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
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. 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. 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. 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