SlideShare uma empresa Scribd logo
1 de 83
Performance em Aplicações Java Claudio Miranda Summa Technologies Conexão Java 2007
Objetivo Dicas para melhoria de performance em aplicações Java Aprenda técnicas e ferramentas para diagnosticar e resolver problemas de desempenho em um ambiente Java
Objetivo ,[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas em Performance ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object]
Heap -Xmx 2g
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Heap -XX:MaxNewSize=256m -Xmx2g
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],private String name = “Bruce Lee”; public Result  consumidor (Long id) { Result r = processar(id); return r; }
Heap -XX:MaxNewSize=256m -Xmx2g
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],public  static  String name = “Bruce Lee”; public  final  Map cache = new HashMap(); private static  Loader singleton = new Loader();
Heap -XX:MaxNewSize=256m -Xmx2g -XX:MaxPermSize=128m
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Heap ,[object Object]
Heap ,[object Object]
Heap ,[object Object]
Heap ,[object Object]
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],Old
Heap ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object]
Técnicas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Técnicas Cada técnica para diagnosticar problemas, tem um nível de intrusão no sistema, que pode variar entre um  rápido monitoramento no sistema  ou um  profiler e debug  no sistema. Essa é a chave que irá determinar o  tempo para resolução do problema
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],Exception in thread &quot;main&quot; java.lang.OutOfMemoryError: Java heap space at ConsumeHeap$BigObject.<init>(ConsumeHeap.java:22) at ConsumeHeap.main(ConsumeHeap.java:41)
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],top
Problemas de memória ,[object Object],[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object],[object Object],[object Object]
Problemas de memória ,[object Object],[object Object]
Problemas de memória ,[object Object]
Problemas de memória ,[object Object]
Problemas de CPU ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Atividade do SO
Problemas de CPU ,[object Object],[object Object],Verificar atividade de GC
Atividade do GC
 
Atividade do GC ,[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas de CPU Verificar atividade de Threads
Comportamento das threads ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Comportamento das threads ,[object Object]
Comportamento das threads
Comportamento das threads
Comportamento das threads ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ferramentas adicionais  para diagnóstico
Ferramentas para diagnóstico ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ferramentas para diagnóstico ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ferramentas para diagnóstico ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ferramentas para diagnóstico
Ferramentas para diagnóstico
Agenda ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Dicas
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Dicas
Dicas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Dicas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Muito Obrigado Claudio Miranda [email_address] http://www.soujava.org.br http://www.summa-tech.com http://www.claudius.com.br

Mais conteúdo relacionado

Mais procurados

Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceSaveincloud
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMRodrigo Zaccara
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceSaveincloud
 
Performance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXPerformance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXAlex Hübner
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBSaveincloud
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemSaveincloud
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresDouglas V. Pasqua
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...Zabbix BR
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorZabbix BR
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Felipe Klerk Signorini
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPAndré Déo
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampAndré Déo
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixAndré Déo
 

Mais procurados (20)

Cloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performanceCloud Mysql e MariaDB em alta performance
Cloud Mysql e MariaDB em alta performance
 
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de DatacentersFISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
 
Entregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVMEntregando conteúdo em ambientes extremos na JVM
Entregando conteúdo em ambientes extremos na JVM
 
Cloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performanceCloud PostgreSQL em alta performance
Cloud PostgreSQL em alta performance
 
Performance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MXPerformance tunning de servidores ColdFusion MX
Performance tunning de servidores ColdFusion MX
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDB
 
Java Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na NuvemJava Escalável e com Alta Disponibilidade na Nuvem
Java Escalável e com Alta Disponibilidade na Nuvem
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
1º Meetup Zabbix Meetup do Recife: Danilo Barros - Zabbix dicas e truques par...
 
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do InteriorDeploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
Deploy MySQL e Performance Tuning - 3º Zabbix Meetup do Interior
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
Vamos conversar sobre cache
Vamos conversar sobre cacheVamos conversar sobre cache
Vamos conversar sobre cache
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016Deploy automático em projeto PHP - PHPSPIMA 2016
Deploy automático em projeto PHP - PHPSPIMA 2016
 
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SPUserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
UserParameter vs Zabbix Sender - 1º ZABBIX MEETUP DO INTERIOR-SP
 
A busca pelo deploy continuo
A busca pelo deploy continuoA busca pelo deploy continuo
A busca pelo deploy continuo
 
De A a Zabbix Devry Metrocamp
De A a Zabbix Devry MetrocampDe A a Zabbix Devry Metrocamp
De A a Zabbix Devry Metrocamp
 
Gerenciamento de Redes com Zabbix
Gerenciamento de Redes com ZabbixGerenciamento de Redes com Zabbix
Gerenciamento de Redes com Zabbix
 
NoSQL Livre
NoSQL LivreNoSQL Livre
NoSQL Livre
 
apache+ssl+Jserv
apache+ssl+Jservapache+ssl+Jserv
apache+ssl+Jserv
 

Semelhante a Dicas para melhorar desempenho em Java

Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com JavaAlisson Pedrina
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoFabio Telles Rodriguez
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3Universal.org.mx
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Otávio Santana
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?pichiliani
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLRaul Oliveira
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaHenrique Lima
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Daniel Destro Do Carmo
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaAdriano Teixeira de Souza
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESSelliando dias
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machineBruno Coan
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoBeatriz Makiyama Celestino
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeterEdlaine Zamora
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveiselliando dias
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreRafael Gomes
 

Semelhante a Dicas para melhorar desempenho em Java (20)

Alta Performance com Java
Alta Performance com JavaAlta Performance com Java
Alta Performance com Java
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
12/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula312/03/2010 - Sistemas Operacionais Aula3
12/03/2010 - Sistemas Operacionais Aula3
 
Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]Imergindo jvm[Apresentação ]
Imergindo jvm[Apresentação ]
 
SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?SSD no banco de dados é bom mesmo?
SSD no banco de dados é bom mesmo?
 
Aula 04 memórias - pt. i
Aula 04  memórias - pt. iAula 04  memórias - pt. i
Aula 04 memórias - pt. i
 
Arquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQLArquitetura de Memoria do PostgreSQL
Arquitetura de Memoria do PostgreSQL
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
Arquitetura de um sistema crítico de alta disponibilidade com soluções open s...
 
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em JavaParadigmas de Linguagens de Programação - Gerenciamento de Memória em Java
Paradigmas de Linguagens de Programação - Gerenciamento de Memória em Java
 
Regras de Produção: o Motor de Inferência JESS
Regras de Produção:o Motor de Inferência JESSRegras de Produção:o Motor de Inferência JESS
Regras de Produção: o Motor de Inferência JESS
 
Introdução Java virtual machine
Introdução Java virtual machineIntrodução Java virtual machine
Introdução Java virtual machine
 
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execuçãoTreinamento: como usar o JMeter, interpretar resultados e otimizar a execução
Treinamento: como usar o JMeter, interpretar resultados e otimizar a execução
 
Testes de Performance com JMeter
Testes de Performance com JMeterTestes de Performance com JMeter
Testes de Performance com JMeter
 
Desenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveisDesenvolvendo aplicações Web escaláveis
Desenvolvendo aplicações Web escaláveis
 
Jj08 otimizacao
Jj08 otimizacaoJj08 otimizacao
Jj08 otimizacao
 
HTML5 - Web storage
HTML5 - Web storageHTML5 - Web storage
HTML5 - Web storage
 
Jsummit 2014
Jsummit 2014Jsummit 2014
Jsummit 2014
 
Elastic MeetUp Porto Alegre
Elastic MeetUp Porto AlegreElastic MeetUp Porto Alegre
Elastic MeetUp Porto Alegre
 

Dicas para melhorar desempenho em Java