Plataforma Java
Agenda• Arquitetura da Plataforma Java• O Compilador• A Maquina Virtual• O Coletor de Lixo
Plataforma Java
# 2
Arquitetura da Plataforma JavaPlataforma Java
# 3
Código Fonte
Compilador
Bytecode
Class LoaderBytecode Verifyer
Máquina Virtual
CompiladorJIT
Sistema Operacional
JDKPlataforma Java
# 4
O Compilador• Compilação• Processamento de Anotations (6.0+)• javax.tools.JavaCompiler (6.0+)• Sun• GCJ, Jikes• Eclipse
– Compilador Incremental JDT
Plataforma Java
# 5
JVM• Componentes
– Núcleo– Interpretador de Bytecode– Compilador JIT– Camada de porting– Gerenciador de execução– Class Library– Thread manager
• Hotspot• Harmony
Plataforma Java
# 6
Coletor de Lixo• Benefícion
– Sem erros por ponteiros pendentes– Sem erros por dupla desalocação– Menos erros de vazamento de memória
• Por gerações (efêmero)• Tipos
– Pausa completa– Incremental– Concorrente
Plataforma Java
# 7
Gerações de objetosPlataforma Java
# 8
Dimensionando Gerações• Tempo (throughput) x Espaço
(footprint)– Principio da maior latência– Prontidão– Tempos de pausa
• Parâmetros da VM Hotspot:-server-Xms e –Xmx (heap inicial e maximo)-XX:MinHeapFreeRatio e -XX:MaxHeapFreeRatio-XX:MaxPermSize-XX:+PrintGCDetails-XX:+AggressiveOpts
Plataforma Java
# 9
Tipos de Coletores• Serial• Throughput
-XX:+UseParallelGC
• Concurrent -Xincgc ou -XX:+UseConcMarkSweepGC
• Incremental (deprecated)
Plataforma Java
# 10
Exercício: VisualVMPlataforma Java
# 11
Resumo• Java é uma linguagem compilada E
interpretada.• O compilador é responsável por traduzir
de java para um código intermediário, o bytecode.
• A JVM interpreta bytecode, executando diretamente ou compilando alguns trechos para código nativo antes.
• O garbage collector é o responsável pela desalicação de objetos inúteis e concorre com a aplicação por CPU e memória.
Plataforma Java
# 12
Plataforma Java
# 13
Dúvidas?
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsphttp://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html