Flame Graphs, uma (boa) alternativa para profiling de apps Java
-
Upload
ptjug -
Category
Technology
-
view
2.219 -
download
1
Transcript of Flame Graphs, uma (boa) alternativa para profiling de apps Java
uma (boa) alternativa para profiling de apps Java
Flame Graphs
Básicos
O que são?
Call stack
Presença nas amostras
para Java!
CPU flame graphs
Flight Recorder
DEMO TIME
•Funciona bem, para java •disponível em todos os OSs • licença comercial Oracle
•não se pode usar em produção •pelo menos sem pagar…
Flight Recorder
perf
DEMO TIME
•dá para ver TUDO o que se passa •em código java •na JVM: compiler, gc, etc… •em libs nativas (NIO) •no kernel
perf
•só para Linux • só com Java 8 > u60 • tem que levar o -XX:+PreserveFramePointer
• 0-3% de impacto na performance • necessita do perf-map-agent
• tem impacto na altura de recolher os símbolos
perf
dtrace, Instruments, hprof, jstack, etc…
Outros
NO DEMO THIS TIME
Conclusões?
•Fácil de perceber a “big picture” •Mostra coisas que os métodos
tradicionais não vêm • Overhead de compilação • Overhead de GC • Tempo em código nativo
•Pouco impacto na performance • A Netflix usa em produção
Benefícios
•Uso com Java é problemático •preencher os stacks •obter os símbolos
•Para ter todas as vantagens, requisitos exigentes: •SO “unixy” •Java 8
Problemas
Outros tipos
Mais informação
http://www.slideshare.net/brendangregg/javaone-2015-java-mixedmode-flame-graphs
https://github.com/chrishantha/jfr-flame-graph
https://github.com/jrudolph/perf-map-agent
https://github.com/brendangregg/FlameGraph
http://www.brendangregg.com/flamegraphs.html
Links