Agenda
• Para que serve?
• Como funciona?
• Onde Otimizar?
• Como Otimizar?
Para que Serve?
A Especificação da JVM
https://docs.oracle.com/javase/specs/index.html
As Implementações Ativas
Como funciona o HotSpot (OpenJDK)
Gerenciamento de Memória na JVM
Parametrizações de JVM
Como aumentar os tamanhos máximos e mínimos da
heap:
Lidando com o Metaspace:
Estratégias de Garbage Collector
Tipos de Garbage Collector:
• Serial Garbage Collector
• Parallel Garbage Collector (Default até o Java 8)
• CMS Garbage Collector
• G1 Garbage Collector (Default a partir do Java 9)
Garbage Collector Experimentais (Java 11):
• Epsilon
• Shenandoah
• Z
Em uma escala de 1 a 5, qual é a melhor opção :
https://bit.ly/2uL2mf5
O que é Otimização de JVM?
É mais do que
parametrização, é uma
combinação de Hardware
e Software
O que é Otimização de JVM?
O que Buscar ?
• Considerando seus ambientes, você pode ganhar mais capacitando seu
hardware do que perder um bom tempo tentando otimizar a sua JVM.
Custo
• No longo prazo, é mais eficiente otimizar para estabilidade, do que
performance, ainda mais que as duas coisas sempre se sobrepõe.
Aonde você quer chegar?
• O principal passo é a monitoração, você não consegue fazer uma otimização
na JVM, nem mesmo debugar se você não tiver monitorando a JVM.
Monitore seu ambiente
• Quase sempre os problemas com a garbage collection (GC) vão apontar para
um vazamento de memória.
Memory Leaks
Monitoração - Uso de Memória
Monitoração – Uso de Memória
Monitoração – Uso de Memória
Monitoração – Garbage Collector
Standard Java Profilers – Oracle Java Mission Control
Ferramental – Eclipse Memory Analyser Tool (MAT)
Quais suas metas de Performance
• Representa quanto o sistema pode aguentar.
Throughput
• O tempo de resposta da suas aplicações
influenciam o todo.
Latência
• A quantidade de Memória requerida para o GC
rodar tranquilamente.
Footprint
Isso é só o começo
Para quem quiser ler
https://deviniciative.wordpress.com/2020/02/06/desmistifican
do-otimizacao-de-jvm/
Desmistificando Otimização de JVM

Desmistificando Otimização de JVM

  • 3.
    Agenda • Para queserve? • Como funciona? • Onde Otimizar? • Como Otimizar?
  • 4.
  • 5.
    A Especificação daJVM https://docs.oracle.com/javase/specs/index.html
  • 6.
  • 7.
    Como funciona oHotSpot (OpenJDK)
  • 8.
  • 9.
    Parametrizações de JVM Comoaumentar os tamanhos máximos e mínimos da heap: Lidando com o Metaspace:
  • 10.
    Estratégias de GarbageCollector Tipos de Garbage Collector: • Serial Garbage Collector • Parallel Garbage Collector (Default até o Java 8) • CMS Garbage Collector • G1 Garbage Collector (Default a partir do Java 9) Garbage Collector Experimentais (Java 11): • Epsilon • Shenandoah • Z Em uma escala de 1 a 5, qual é a melhor opção : https://bit.ly/2uL2mf5
  • 11.
    O que éOtimização de JVM? É mais do que parametrização, é uma combinação de Hardware e Software
  • 12.
    O que éOtimização de JVM?
  • 13.
    O que Buscar? • Considerando seus ambientes, você pode ganhar mais capacitando seu hardware do que perder um bom tempo tentando otimizar a sua JVM. Custo • No longo prazo, é mais eficiente otimizar para estabilidade, do que performance, ainda mais que as duas coisas sempre se sobrepõe. Aonde você quer chegar? • O principal passo é a monitoração, você não consegue fazer uma otimização na JVM, nem mesmo debugar se você não tiver monitorando a JVM. Monitore seu ambiente • Quase sempre os problemas com a garbage collection (GC) vão apontar para um vazamento de memória. Memory Leaks
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
    Standard Java Profilers– Oracle Java Mission Control
  • 19.
    Ferramental – EclipseMemory Analyser Tool (MAT)
  • 20.
    Quais suas metasde Performance • Representa quanto o sistema pode aguentar. Throughput • O tempo de resposta da suas aplicações influenciam o todo. Latência • A quantidade de Memória requerida para o GC rodar tranquilamente. Footprint
  • 21.
    Isso é sóo começo
  • 22.
    Para quem quiserler https://deviniciative.wordpress.com/2020/02/06/desmistifican do-otimizacao-de-jvm/