Alta performance com Java 
pedrina.alisson@gmail.com
Agradecimentos
1 –Visão Geral sobre Performance 
2 –Plataforma Java 
-compilador 
-garbagecollector 
3 –Boas práticas de Design para 
uso...
Desempenho 
Gargalo 
Escalabilidade 
Performance?
-Online TransactionProcess(OLTP) 
-Batch 
-Latência-Time-response-Think time-Throughput (tps -ops) 
Vamos observar a perfo...
Hardware: cpu, memória, storagee network 
Configuração de recursos 
externos: midleware, bd, loadbalance, etc 
Fatores par...
-Cópia exata 
-Subconjunto com poucos servidores 
mas com especificação , hardware 
e camadas iguais 
O ambiente para os t...
Teoria das filas 
Probabilidade 
Auxilia
Plataforma: 
-compilador (JIT) 
-garbagecollector 
“Nada melhora mais a performance do que um código bem escrito !!!” 
E a...
JVM arquitetura
-Inline 
-ScapeAnalysis(GlobalScape–ArgScape–NoScape) 
-Lockelision(e.gStringBuffere Vetor) 
-Jitwatch 
Otimizações
Garbage Collector
● 
GC Promoções
-Serial GC (-XX:+UseSerialGC) 
-ParallelGC (-XX:+UseParallelGC/ UseParallelOldGC) 
-ConcurrentMark & SweepGC ("CMS") (-XX:...
Serial e Paralelo YGC
CMS e Paralelo FGC
● 
G1
● 
Mapa mental
-jcmd, jmap, jhate jstat 
-jvisualvm 
-MemoryAnalyzerTools (mat) 
-javap 
Profile e análise do Heap
JVM memória
Uma referência
Tempo X Espaço
-strong 
-weak 
(metadados, classloader) -soft 
(cache) -phantom(ex. De imagem grande, corrige finalize(), evita ressureiç...
WeakHashMap 
Garante que ao não haver referencias fortes será recolhido da memória. Ex. Metadados
WeakHashMap –javax.cache.Caching (jsr107) 
Evitando o leak de memória
Soft 
Só vão ser recolhidas se for necessário mais memória!!!
Soft 
Utilização da variável local, ótimo exemplo de soft
Phantom
Finzalize -guardian 
Prevenindo que alguma subclasse não chame super.finalize()
FileInputStream –Enceramento explícito/ par nativo
FileInputStream -Rede de segurança 
Caso o método explícito de close() não ser chamado...
Encadeamento de finalizadores
Métodos de fabricação estáticos -Imutáveis –flyweight 
Não crie uma nova instância a cada chamada, reutilize!!
Classes não instanciáveis-Math, Arrays, Collections
Strings imutáveis e canônicas (intern)
Lazy Initialization –atributo de instancia
Lazy Initialization –atributo de classe
Singleton 
Obs: Podemos também centralizar a origem do “criador” das instâncias (Factory Method)
Singleton
Thread local Scope:”request”? –InheritableThreadLocal
-JMX 
-Concurrency 
-Use Buffer para I/0, Log, Hibernate, JSF, JPA e etc 
Benchmark, API, J2EE, frameworks e outros
vamos a prática... 
Prática
Alta Performance com Java
Próximos SlideShares
Carregando em…5
×

Alta Performance com Java

339 visualizações

Publicada em

Palestra realizada dia 29/11/14 no Javaneiros, maior evento de TI do Mato Grosso do Sul. By Alisson Pedrina

Publicada em: Engenharia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
339
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
11
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Alta Performance com Java

  1. 1. Alta performance com Java pedrina.alisson@gmail.com
  2. 2. Agradecimentos
  3. 3. 1 –Visão Geral sobre Performance 2 –Plataforma Java -compilador -garbagecollector 3 –Boas práticas de Design para uso de Memória 4 -Prática Conteúdo
  4. 4. Desempenho Gargalo Escalabilidade Performance?
  5. 5. -Online TransactionProcess(OLTP) -Batch -Latência-Time-response-Think time-Throughput (tps -ops) Vamos observar a performance
  6. 6. Hardware: cpu, memória, storagee network Configuração de recursos externos: midleware, bd, loadbalance, etc Fatores para performance
  7. 7. -Cópia exata -Subconjunto com poucos servidores mas com especificação , hardware e camadas iguais O ambiente para os testes
  8. 8. Teoria das filas Probabilidade Auxilia
  9. 9. Plataforma: -compilador (JIT) -garbagecollector “Nada melhora mais a performance do que um código bem escrito !!!” E agora o Gargalo está no Java?
  10. 10. JVM arquitetura
  11. 11. -Inline -ScapeAnalysis(GlobalScape–ArgScape–NoScape) -Lockelision(e.gStringBuffere Vetor) -Jitwatch Otimizações
  12. 12. Garbage Collector
  13. 13. ● GC Promoções
  14. 14. -Serial GC (-XX:+UseSerialGC) -ParallelGC (-XX:+UseParallelGC/ UseParallelOldGC) -ConcurrentMark & SweepGC ("CMS") (-XX:+UseConcMarkSweepGC) -GarbageFirst(G1) GC (-XX:+UseG1GC) Garbage Collector
  15. 15. Serial e Paralelo YGC
  16. 16. CMS e Paralelo FGC
  17. 17. ● G1
  18. 18. ● Mapa mental
  19. 19. -jcmd, jmap, jhate jstat -jvisualvm -MemoryAnalyzerTools (mat) -javap Profile e análise do Heap
  20. 20. JVM memória
  21. 21. Uma referência
  22. 22. Tempo X Espaço
  23. 23. -strong -weak (metadados, classloader) -soft (cache) -phantom(ex. De imagem grande, corrige finalize(), evita ressureição) Tipos de referências
  24. 24. WeakHashMap Garante que ao não haver referencias fortes será recolhido da memória. Ex. Metadados
  25. 25. WeakHashMap –javax.cache.Caching (jsr107) Evitando o leak de memória
  26. 26. Soft Só vão ser recolhidas se for necessário mais memória!!!
  27. 27. Soft Utilização da variável local, ótimo exemplo de soft
  28. 28. Phantom
  29. 29. Finzalize -guardian Prevenindo que alguma subclasse não chame super.finalize()
  30. 30. FileInputStream –Enceramento explícito/ par nativo
  31. 31. FileInputStream -Rede de segurança Caso o método explícito de close() não ser chamado...
  32. 32. Encadeamento de finalizadores
  33. 33. Métodos de fabricação estáticos -Imutáveis –flyweight Não crie uma nova instância a cada chamada, reutilize!!
  34. 34. Classes não instanciáveis-Math, Arrays, Collections
  35. 35. Strings imutáveis e canônicas (intern)
  36. 36. Lazy Initialization –atributo de instancia
  37. 37. Lazy Initialization –atributo de classe
  38. 38. Singleton Obs: Podemos também centralizar a origem do “criador” das instâncias (Factory Method)
  39. 39. Singleton
  40. 40. Thread local Scope:”request”? –InheritableThreadLocal
  41. 41. -JMX -Concurrency -Use Buffer para I/0, Log, Hibernate, JSF, JPA e etc Benchmark, API, J2EE, frameworks e outros
  42. 42. vamos a prática... Prática

×