Flávia Falcão <fmcf2@cin.ufpe.br> Java Performance Flávia Falcão <fmcf2@cin.ufpe.br>

Slides:



Advertisements
Apresentações semelhantes
Desempenho da Computação Paralela em Ambientes Virtualizados
Advertisements

Máquinas virtuais Orlando Corrêa Netto.
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Tecnologia de Banco de Dados Grupo 3: Diógenes LíbanoElton S. Vianna Euglen AssisLisa Hayashida Marcelo da Cruz SalvadorRicardo Takemura Gerenciador de.
Projeto conceitual Mostra ao cliente exatamente o que o sistema fará
Modo Gráfico x Modo Texto
Rational Unified Process(RUP)
Engenharia de Software
Arquitetura de Sistemas Operacionais
Arquitetura da Máquina Virtual Java
CISC e RISC.
Avaliação de Sistemas Operacionais
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Arquitetura de Sistemas Operacionais
Aula 8 Orientação à Objetos
09/03/10 20:13 Claudio de Oliveira – 1/21.
Modelos de Processos de Software
Introdução a Programação Orientada a Objetos
Professora Vanessa Fonseca
REDUNDÂNCIA POR SOFTWARE
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Adriano da Silva Castro
JAVA Linguagem Ambiente de Desenvolvimento
Conceitos de Linguagem de Programação
Linguagem de Programação IV
Sistemas Distribuídos
Gerencia de Redes Redes de Computadores II
Sistemas Distribuídos Carlos A. G. Ferraz DI/UFPE Aula 07.
Geração de Código Teoria e Implementação de Linguagens Computacionais – IF688 Jobson Ronan Jeronimo da Silva
Conceitos de J2EE para a WEB
Cristiano Soares Rafael di Lego Roberto Nemirovsky Thiago Nascimento
Gerência de Configuração - GC
Capítulo 5 Garbage Collector.
XIV Jornada de Cursos .NET com C# Antônio Júnior Bruno Inojosa.
Professor: Márcio Amador
Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Agosto/2009.
Universidade de Mogi das Cruzes Tec
O Processo de desenvolvimento de software
Capítulo VIII Ambientes de Execução
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
SISTEMAS OPERACIONAIS I
Processos.
MINI CURSO J2ME Vinícius Maran SEMINÁRIO REGIONAL DE INFORMÁTICA 2008.
Sistemas Operacionais
Conceitos de thread Faculdade PITÁGORAS – Outubro de 2012
Performance Java Flávia Falcão |
Performance em Web Services em Plataforma Java Flávia Falcão -
GARBAGE COLLECTOR 1 UNIVERSIDADE FEDERAL DO PARÁ - UFPA.
Performance Java Flávia Falcão |
Introdução a Programação Orientada a Objetos
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
Mini Curso.
J P Sauvé - DSC/UFPb 1 Técnicas de Programação: Profiling de Programas Jacques Philippe Sauvé.
Linguagem técnica de programação I Java
Performance Java Flávia Falcão |
CloudSim Um framework para modelagem e simulação de infraestrutura e serviços de Computação em Nuvem.
Igor Steinmacher, MSc. Java!!!!
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Avaliação de Desempenho em Ambientes de Mobile Cloud Computing Danilo Oliveira Paulo Maciel Nelson Rosa.
Detecção de tráfego Skype na Web através de Redes Neurais Artigo Original: Freire, P. E., Ziviani, A., and Salles, R. M. (2008). Detecting skype flows.
Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.
Influencias sobre o Projeto da Linguagem
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
Garbage Collection Julio M. Faerman. Gerações de objetos Garbage Collection # 2.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
COMPILADORES 02 Prof. Marcos. COMPILADORES Do Programa à Execução Computadores das mais variadas arquiteturas têm funcionamento:
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO CURSO DE CIÊNCIA DA COMPUTAÇÃO Redes de Computadores Ferramenta NTop (Network Traffic Probe) Explorador.
Capítulo 4 Estrutura do Sistema Operacional
Transcrição da apresentação:

Flávia Falcão <fmcf2@cin.ufpe.br> Java Performance Flávia Falcão <fmcf2@cin.ufpe.br>

Roteiro Performance Performance no desenvolvimento de Software Benchmark Profiling HotSpot Virtual Machine Garbage Collection Referências

Performance Performance computacional : -Qual o melhor algoritmo? Memória -Quanta memória o software necessita para rodar? Startup Time Escalabilidade -Um servidor pode funcionar bem com 50 usuários ,mas como ele se comporta com 1000? Performance Percebida

Performance nas Fases de Desenvolvimento As fases do tradicional modelo de Desenvolvimento Orientado a Objetos,com uma fase adcional “performace profiling”que determina as caracteristicas de performance do sistema.

Benchmarking Devem ser capazes de: Comparar a performance de soluções alternativas; Retratar a performance de aplicações. Macro benchmark :testam uma grande parte do sistema. Micro benchmark :que testam um especifico aspecto do sistema.

Profiling Determinam que áreas do sistema consomem maior parte dos recursos : - Que métodos são chamados mais vezes? - Que métodos usam a maior porcentagem do tempo? - Que métodos estão chamando os métodos mais usados? - Que método aloca mais memória?

Profiling :Exemplo Desde Java2 SDK 1.2, inclui básico profiling,que permitem verificar onde o programa consome mais tempo : Java –Xrunhprof [opcoes]<MainClassName>

Exemplo: Saida do profiling ..... percent live alloc'ed stack class rank self accum bytes objs bytes objs trace name 1 73.33% 73.33% 601448 220 601448 220 1 [I 2 7.38% 80.71% 60536 406 60536 406 1 [C 3 5.49% 86.20% 45000 217 45000 217 1 [B 4 2.09% 88.28% 17120 315 17120 315 1 java.lang.Object 5 1.84% 90.12% 15064 282 15064 282 1 [S 6 1.62% 91.74% 13328 238 13328 238 1 java.lang.Class ...

HotSpot Virtual Machine A Tecnologia Java HotSpot foi desenvolvida com o objetivo de maximizar o desempenho de programas executados em máquinas virtuais java .Atualmente a Sun oferece dois produtos baseados nesta tecnologia ,a solução cliente e a solução servidor. Desde a versão 1.3 do J2SE SDK todas as implementações da Sun incluem a versão HotSpot Client VM; a HotSpot Server VM é opcional.

HotSpot VM :Arquitetura

Client & Server VM

HotSpot VM :Client x Server Há duas partes nos sistemas HotSpot : runtime e compiler. As versões cliente e servidor são diferenciadas pelo seu compilador. A versão cliente é otimizada para que as aplicações tenham uma inicialização rápida e consumam menos memória, enquanto que a versão servidor é otimizada para desempenho.

HotSpot VM : Runtime Interpretador de bytecode: -Um simples compilador JIT compila todos os metodos antes deles serem executados.A HotSpot runtime executa muitos métodos em modo puramente interpretado. Gerenciamento de memória Garbage Colletion Sincronização rápida de threads

HotSpot VM :Compiler Executa o codigo imediatamente usando o interpretador. À medida que a execução prosegue ,analisa o código para detectar os hot spots. Compilação para codigo nativo Inlining dos metodos otimizados Otimizações:eliminação de codigo morto e de subexpressões comuns... Consome menos memória Mais lento que um compilador JIT ,mas a qualidade das otimizações valem a pena.

Garbage Collection A JDK 1.4.1 inclui seis diferentes algoritmos de Garbage Collection; e mais de doze opcões de comandos para configurar o garbage collection. Os beneficios trazidos pelo GC tem um custo que podem causar impacto na performance : pausas.

Fatores que afetam o GC Tempo de vida dos objetos: - temporários, intermediários, longos. Tipo de objetos -Tamanho, complexidade. Relação entre objetos -Dificuldade de determinar e percorrer as referências de objetos.

Generational Collection Divide a heap em multiplas áreas (gerações) - Objetos gerenciados por idades. - Objetos novos morrem mais cedo : GC mais frequentemente - Gerações mais velhas coletadas com menos frequencia -Diferentes Gerações usam diferentes algoritimos : Copying , Mark-Sweep , Mark-Compact, Incremental, Parallel Copy, Concurrent, Parallel Scavenge...

HotSpot VM :Heap Layout

Profiling Garbage Collection Exemplo : java -Xloggc:log.txt –verbose:gc <mainclass> 0.000: [GC 511K->127K(1984K), 0.0090819 secs] 0.146: [GC 639K->131K(1984K), 0.0032250 secs] 0.230: [GC 642K->137K(1984K), 0.0032993 secs] 0.387: [GC 649K->256K(1984K), 0.0066710 secs] 19.726: [GC 768K->328K(1984K), 0.0045419 secs] 55.513: [GC 840K->380K(1984K), 0.0029828 secs]

GC Portal As informações output do verbose:gc são pouco amigaveis. O GC Portal provê uma analisa do output do verbose:gc , através de mecanismo como : - analise e relatórios - gráfico e etc..

Referências http://java.sun.com/docs/books/performance/ http://java.sun.com/docs/hotspot/gc1.4.2/ http://java.sun.com/developer/technicalArticles/Programming/GCPortal/ http://developers.sun.com/events/techdays/presentations/seattle/CodecampHotSpotVirtualMachineTuning.pdf