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