24
uma (boa) alternativa para profiling de apps Java Flame Graphs

Flame Graphs, uma (boa) alternativa para profiling de apps Java

  • Upload
    ptjug

  • View
    2.219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Flame Graphs, uma (boa) alternativa para profiling de apps Java

uma (boa) alternativa para profiling de apps Java

Flame Graphs

Page 2: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Básicos

Page 3: Flame Graphs, uma (boa) alternativa para profiling de apps Java

O que são?

Page 4: Flame Graphs, uma (boa) alternativa para profiling de apps Java
Page 5: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Call stack

Presença nas amostras

Page 6: Flame Graphs, uma (boa) alternativa para profiling de apps Java

para Java!

CPU flame graphs

Page 7: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Flight Recorder

Page 8: Flame Graphs, uma (boa) alternativa para profiling de apps Java

DEMO TIME

Page 9: Flame Graphs, uma (boa) alternativa para profiling de apps Java

•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

Page 10: Flame Graphs, uma (boa) alternativa para profiling de apps Java

perf

Page 11: Flame Graphs, uma (boa) alternativa para profiling de apps Java

DEMO TIME

Page 12: Flame Graphs, uma (boa) alternativa para profiling de apps Java

•dá para ver TUDO o que se passa •em código java •na JVM: compiler, gc, etc… •em libs nativas (NIO) •no kernel

perf

Page 13: Flame Graphs, uma (boa) alternativa para profiling de apps Java

•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

Page 14: Flame Graphs, uma (boa) alternativa para profiling de apps Java

dtrace, Instruments, hprof, jstack, etc…

Outros

Page 15: Flame Graphs, uma (boa) alternativa para profiling de apps Java

NO DEMO THIS TIME

Page 16: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Conclusões?

Page 17: Flame Graphs, uma (boa) alternativa para profiling de apps Java

•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

Page 18: Flame Graphs, uma (boa) alternativa para profiling de apps Java

•Uso com Java é problemático •preencher os stacks •obter os símbolos

•Para ter todas as vantagens, requisitos exigentes: •SO “unixy” •Java 8

Problemas

Page 19: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Outros tipos

Page 20: Flame Graphs, uma (boa) alternativa para profiling de apps Java
Page 21: Flame Graphs, uma (boa) alternativa para profiling de apps Java
Page 22: Flame Graphs, uma (boa) alternativa para profiling de apps Java
Page 23: Flame Graphs, uma (boa) alternativa para profiling de apps Java

Mais informação

Page 24: Flame Graphs, uma (boa) alternativa para profiling de apps Java

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