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

13
Plataforma Java

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

Page 1: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

Plataforma Java

Page 2: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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

Plataforma Java

# 2

Page 3: 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

Page 4: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

JDKPlataforma Java

# 4

Page 5: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

O Compilador• Compilação• Processamento de Anotations (6.0+)• javax.tools.JavaCompiler (6.0+)• Sun• GCJ, Jikes• Eclipse

– Compilador Incremental JDT

Plataforma Java

# 5

Page 6: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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

Page 7: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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

Page 8: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

Gerações de objetosPlataforma Java

# 8

Page 9: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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

Page 10: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

Tipos de Coletores• Serial• Throughput

-XX:+UseParallelGC

• Concurrent -Xincgc ou -XX:+UseConcMarkSweepGC

• Incremental (deprecated)

Plataforma Java

# 10

Page 11: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

Exercício: VisualVMPlataforma Java

# 11

Page 12: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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

Page 13: Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.

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