Plataforma Java
Plataforma Java
Agenda
• Arquitetura da Plataforma Java
• O Compilador
• A Maquina Virtual
• O Coletor de Lixo
#2
Plataforma Java
Arquitetura da Plataforma Java
Código
Fonte
Compilador
Bytecode
Class Loader
Bytecode Verifyer
Máquina
Virtual
Compilador
JIT
Sistema Operacional
#3
Plataforma Java
JDK
#4
Plataforma Java
O Compilador
• Compilação
• Processamento de Anotations (6.0+)
• javax.tools.JavaCompiler (6.0+)
• Sun
• GCJ, Jikes
• Eclipse
– Compilador Incremental JDT
#5
Plataforma Java
JVM
• Componentes
–
–
–
–
–
–
–
Núcleo
Interpretador de Bytecode
Compilador JIT
Camada de porting
Gerenciador de execução
Class Library
Thread manager
• Hotspot
• Harmony
#6
Plataforma Java
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
#7
Plataforma Java
Gerações de objetos
#8
Plataforma Java
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
#9
Plataforma Java
Tipos de Coletores
• Serial
• Throughput
-XX:+UseParallelGC
• Concurrent
-Xincgc ou -XX:+UseConcMarkSweepGC
• Incremental (deprecated)
# 10
Plataforma Java
Exercício: VisualVM
# 11
Plataforma Java
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.
# 12
Plataforma Java
Dúvidas?
http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp
http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html
# 13
Download

Slide 1 - cursos