Alta Performance com Java

355 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
355
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

×