Plataforma Java
description
Transcript of Plataforma Java
![Page 1: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/1.jpg)
Plataforma Java
![Page 2: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/2.jpg)
Agenda
• Arquitetura da Plataforma Java• O Compilador• A Maquina Virtual• O Coletor de Lixo
Plataforma Java
# 2
![Page 3: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/3.jpg)
Arquitetura da Plataforma Java
Plataforma Java
# 3
Código Fonte
Compilador
Bytecode
Class LoaderBytecode Verifyer
Máquina Virtual
CompiladorJIT
Sistema Operacional
![Page 4: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/4.jpg)
JDK
Plataforma Java
# 4
![Page 5: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/5.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/6.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/7.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/8.jpg)
Gerações de objetos
Plataforma Java
# 8
![Page 9: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/9.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/10.jpg)
Tipos de Coletores
• Serial• Throughput
-XX:+UseParallelGC
• Concurrent -Xincgc ou -XX:+UseConcMarkSweepGC
• Incremental (deprecated)
Plataforma Java
# 10
![Page 11: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/11.jpg)
Exercício: VisualVM
Plataforma Java
# 11
![Page 12: Plataforma Java](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/12.jpg)
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](https://reader036.fdocumentos.com/reader036/viewer/2022062323/568154f3550346895dc2e77d/html5/thumbnails/13.jpg)
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