Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de...

Post on 07-Apr-2016

225 views 4 download

Transcript of Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de...

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