Performance Java Flávia Falcão |

Slides:



Advertisements
Apresentações semelhantes
INTRODUÇÃO À COMPUTAÇÃO Sistemas Operacionais
Advertisements

Máquinas virtuais Orlando Corrêa Netto.
A estrutura do gerenciamento de projetos Introdução
Metodologia de testes Nome: Gustavo G. Quintão
Sistemas Operacionais
A Interface entre Processadores e Periféricos
Recursividade Prof. Alex F. V. Machado
Applets Carlos Bazilio Depto de Ciência e Tecnologia
Sistemas Operacionais
SISTEMAS DISTRIBUÍDOS
Políticas Curso de aprofundamento em linguagem C.
Estudo comparativo entre as arquiteturas Opteron e Itanium
Alexandre Parra Site: Linguagem Java Alexandre Parra Site:
Softwares.
09/03/10 20:13 Claudio de Oliveira – 1/21.
MANUTENÇÃO DE SOFTWARE
Análise de Sistemas e Gestão de Projectos 1 Sistema de localização zigbee (Em desenvolvimento) Ricardo Silva.
ICC2 Aula 5 Fábio Nakano.
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Concorrência em Java Threads em Java.
Aula prática 13 Orientação a Objetos – C++ Parte 1
Adriano da Silva Castro
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Distribuídos
ÍNDICES DE CARGA E DE DESEMPENHO SSC-642 SISTEMAS COMPUTACIONAIS DISTRIBUÍDOS.
Java Avançado Luiz Carlos d´Oleron SJCP Java Sockets.
Conceitos de J2EE para a WEB
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Gerência de Configuração - GC
Capítulo 5 Garbage Collector.
ANÁLISE DO PADRÃO DE ACESSOS À MEMÓRIA DE PROGRAMAS PARALELOS
Ambiente de Execução - Rotinas
Garbage Collection O que é Garbage Collector? É o coletor de lixo que é utilizado pela JVM para a limpeza da memória.
Software Básico Nível ISA Capítulo 5 Mitsuo Takaki
Capítulo VIII Ambientes de Execução
SISTEMAS OPERACIONAIS I
Aplicações Web com Orientação a Objetos
Processos.
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Bruno C. Bourbon Jarbas J. de O. Júnior {bcb, cin.ufpe.br
Gerência de Portfólio de Projetos
Introdução a JEE Marco A. S. Reis Arquiteto de Software Abril/2011.
Monitoria IP ~if669 Garbage Collection e pacotes.
Unidade 1 – Introdução a J2EE Prof.: Henrique Santos
Performance em Web Services em Plataforma Java Flávia Falcão -
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
MSCC - Introdução Baseado no capítulo 1 do livro Performance Evalution of Computer and Communication Systems, de Jean-Yves Le Boudec (EPFL)
Flávia Falcão Java Performance Flávia Falcão
GARBAGE COLLECTOR 1 UNIVERSIDADE FEDERAL DO PARÁ - UFPA.
Performance Java Flávia Falcão |
A High Performance Java Middleware with a Real Application HUERT, Fabrice; CAROMEL, Denis; Bal, Henri E. Supercomputing 2004 Trabalho desenvolvido por:
Mini Curso.
Performance Java Flávia Falcão |
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Performance em web services na plataforma java Flávia Falcão - Rodrigo Assad
Sistemas de Arquivos Paralelos Alternativas para a redução do gargalo no acesso ao sistema de arquivos Roberto Pires de Carvalho carvalho arroba ime ponto.
Planejamento da Movimentação de Mercadorias: Estratégia Logística
Bruno Iran Ferreira Maciel
Abordagem Sistemática Guilherme Amaral Avelino Avaliação e Controle de Sistemas de Informação.
Ferramentas para desenvolvimento Java
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
Avaliação de Desempenho em Ambientes de Mobile Cloud Computing Danilo Oliveira Paulo Maciel Nelson Rosa.
Plataforma Java. Agenda Arquitetura da Plataforma Java O Compilador A Maquina Virtual O Coletor de Lixo Plataforma Java # 2.
Garbage Collection Julio M. Faerman. Gerações de objetos Garbage Collection # 2.
© Copyright 2007 Algoritmos e Estruturas de Dados - Todos os direitos reservados Ponteiros IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Murilo Raphael.
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Arleys Pereira Nunes de Castro - Mestrando : Modelagem computacional (SENAI-MCTI) Especialista : Sistema distribuídos
Melo Informática. Copyright© Todos os direitos reservados. 1 1 Interface Homem X Máquina APF - Análise por Pontos de Função É um método padrão para.
Transcrição da apresentação:

Performance Java Flávia Falcão |

Roteiro Motivação Objetivos Garbage Collection Parser Codificação Java Conclusao Referencias

Motivação Web está em todo lugar : –E-marketplaces –E-comerce B2B automatizado –Interegracao de processos de negocio na web –Compartilahamento de recursos, computacao distribuida Necessidade de plataforma que permita interações aplicação-a-aplicação sistemática na web : web services, escopo é o projeto CENAS –FOCO Tecnologia web services, escopo é o projeto CENAS Problema : A performance dessas aplicações

Identificar os fatores que influenciam o desempenho das aplicações j2ee e web services JVM Tunning XML Parser Boas práticas para codificação de aplicações em JAVA, com ênfase em WebServices Objetivos

Garbage Collection A performance de uma aplicação está intimamente ligada ao custo da alocação e desalocação de memória. Se uma aplicação usa uma quantidade de memória tal que força o sistema operacional a usar memória virtual, esta aplicação sofrerá um impacto na performance

Tempo de Vida dos Objetos A maioria dos objetos tem um curto tempo de vida: –80-98% dos objetos alocados morrem em menos de poucos milhões de instruções. –80-98% dos objetos alocados morrem antes de outro megabyte ter sido alocado. Isto tem grande impacto da escolha do algoritmo de Garbage Collection Definir o perfil de execução de uma aplicação, Isso é difícil !!!

Generacional GC Divide a heap em múltiplas áreas ( gerações) –Objetos segregados por idade –Objetos novos morrem mais frequentemente,GC mais freqüente –Em Gerações mais velhas as coletas são menos freqüentes –Diferentes gerações usam diferentes algoritmos

Fatores que afetam o GC Taxa de objetos criados Vida dos objetos –Temporários,intermediários,longos Tipo do objeto –Tamanho, complexidade Relacionamento entre objetos –Dificuldade de determinar e traçar as referencias dos objetos

Atividades Realizadas Analisar os principais algoritmos geracionais do garbage Collection da jvm –Copyng GC –Mark sweep GC –Parallel GC –Concurrent mark sweep GC –Incremental GC Mecanismos disponiveis para otimizar seu desempenho –Analise do comportamento da Heap da jvm

Maquina Virtual JAVA A HotSpot VM otimiza o gerenciamento de memória por idades (generational). O heap da maquina virtual é dividida em young generation e old gereration e permanent generation de acordo com a idade do objeto

Maquina Virtual JAVA Na Young generation estão os objetos considerados com tempo de curto relativo a um intervalo de coletas. A young generation é dividida em 3 espacos : –um eden –dois espaços “Survivor”(to-space e from-space). –As alocações acontecem do eden para o from-space.Quando estes estão preenchidos a coleta na Young generation é feita. –Geralmente a young generation é muito menor em relação ao tamanho da heap.Isto leva a pequenas mas freqüentes pausas na young generation durante a execução do garbage collection.

Maquina Virtual JAVA Objetos que sobreviventes a um determinado numero de coletas são movidos(promovidos) para a old generation. A old generation é geralmente maior em relação a Young o que leva a pausas maiores e menos freqüentes. A permanent generation é usada para armazenar classes de objetos e meta dados relacionados.

Maquina Virtual JAVA

Parâmetros da JVM -XX:NewSize -XX:MaxNewSize -XX:SurvivorRatio Automaticamente –XX:+UseAdaptativeSize

Maquina Virtual JAVA Como exemplo, para uma Yung generation com 128Mb, Eden de 64Mb, Semi- Space 32MB, Os parametros devem ser java -Xms512m -Xmx512m \ -XX:NewSize=128m -XX:MaxNewSize=128m \ -XX:SurvivorRatio=2 application

Maquina Virtual JAVA A otimização da utilização destas áreas juntamente com a escolha correta do algorítimo do garbage collector pode gerar um aumento de performance considerável

Maquina Virtual JAVA Nas J2Ses o algoritmo default da Young generation é o copyng collector já na old generation o algoritmo padrão é o mark-compact collector.

Maquina Virtual JAVA Algorítimos Parallel Collector que é implementado na young generation.Este Coletor usa a versão paralela da young generation coletor.(copyng colector). Deve ser usado quando se deseja melhorar o desempenho da aplicação em maquinas com vários processadores. –-XX:+UseParNewGC, -XX:+UseParallelGC, - XX:ParallelGCThreads=n

Maquina Virtual JAVA Algorítimos Concurrent mark sweep Collector é implementado na old generation.Tenta minimizar as pausas fazendo a maioria da coleta simultaneamente com as threads da aplicação. –-XX :UseConcMarkSweepGC

Cases 1

Teste com a aplicação J2EE PetStore Desafios –Analisar o comportamento dos algorítimos e mensurar a performance deles em maquinas multiprocessadas –Realizar um estudo sobre dimensionamento do HEAP

Cases

2

Testes na aplicação portal consul Desafios –Realizar testes na aplicação do desenvolvida pelo CESAR analisando Variação do servidor de aplicação Variação da JVM Utilização de macanismos de cache

Cases

3

Testes na aplicação da Meantime para a globo.com Desafios –A aplicação deveria ser capaz de atender requisições em 1 hora (97.2 req/seg) –A equipe do projeot partiu das premissas: Popar o SGBD ($$$$$) Maximizar Cache

Cases

Case

Web services : Problemas XML é o coração da tecnologia web services. Problemas : –Tamanho dos arquivos xml –Marshalling e un-marshaling –Tipo de dado –Transmissao de mensagens SOAP –Validação

Marshalling e Un-marshaling : Parser XML O tempo de conversão de documentos XML durante o processo de comunicação, pode significar um grande gargalo no sistema quando se refere à performance do envio e recebimento de um serviço.

Case Testes realizados com Parsers Xml/Java de diferentes fabricantes. Desafios: –Realizar testes em aplicação analisando o comportamento de cada um dos parsers –Mensurar e comparar o desempenho deles

Case

A maneira com que se escreve um código pode ter um impacto no desempenho de um sistema. Inúmeros partes similares de código podem ter desempenhos radicalmente diferentes.. Como os que seguem… Codificação Java

Exemplos (1) Concatenação de strings String str = “teste” + “já” + “va”; internamente é : String str = new StringBuffer().append(“teste”).append(“ja”).append(“va”)..toString();

JSP

Servlets

Web Services

Referencias

Perguntas?