Presentation: Using FlameGraphs To Illuminate The JVM

Location:

Duration

Duration: 
4:10pm - 5:00pm

Day of week:

Level:

Persona:

Key Takeaways

  • Understand the benefits of using FlameGraphs
  • Learn how to read FlameGraphs
  • Familiarize yourself with Java application profiles: OS/GC/Compiler/Runtime/Java code

Abstract

FlameGraphs offer us a new way to visualize execution profiles, combined with Linux system profiler perf and the recently added -XX:+PreserveFramePointer option in JDK 8u60 we now have for the first time a way to capture a comprehensive profile for the OS, JVM and your Java code.

In this session, we explore the JVM and Java applications using this new perspective and reflect on the profiles and the utility of this new method:

  • Introduction to FlameGraphs
  • Old School? FlameGraphs using jstack and honest-profiler
  • perf-map-agent + FlameGraphs + Java
  • Java code left+right+center (oh yes, you are so special my child!)
  • Profiling the profilers
  • Compilers ate my mother profile
  • GC thrashed my dad profile
  • And more advanced FlameGraphs usage as time permits!

Interview

Question: 
What are your focused in your work/research today?
Answer: 

Currently I'm working with Martin Thompson and Todd Montgomery on Aeron, as well as maintaining JCTools and doing performance analysis work for clients.

Question: 
What is goal for your talk?
Answer: 

I would like people to leave this talk with the feeling they can and should start using FlameGraphs to profile and analyse Java applications. I think it's an important tool/perspective which deserves a place in Java developers toolbox.

Question: 
Ask and answer a question you feel gets to the heart of your talk... your choice.
Answer: 

Why should I use Perf Java FlameGraphs?

a. A more accurate profiling method => find the ACTUAL bottlenecks

b. A better and more usable visualization => easily zoom in on parts or take in the full picture.

c. A wider scope of profiling => see your code + GC + Compiler + OS CPU utilization in one view, gain context and expand your understanding of the JVM.

d. Easy to participate! => Extend functionality or create your own tools! Filtering data and creating new insights is simple and approachable.

Question: 
What is the level and target person for your talk?
Answer: 

This is an intermediate to novice talk, there's nothing arcane going on.

Speaker: Nitsan Wakart

Performance Consultant and OSS Contributor

A blogger and a coder with a pedantic passion for performance. My work has spanned army intelligence systems, dot.com era startups, financial institutions and innovative product companies. A Performance Consultant by day, and an OSS contributor by night (JCTools, Aeron, Honest-Profiler and other projects).

Find Nitsan Wakart at

Similar Talks

Head of Software Engineering @LMAX Exchange
Java/Groovy Developer and Java Champion
Groovy Enthusiast, Teacher of Computer Science

Tracks

Conference for Professional Software Developers