In this talk, you'll be introduced to the basic concepts of profiling Java code using perf_events (aka perf). You'll see how to collect stack traces and how to use Flame Graphs to provide a dynamic visual display for them. This, in turn, allows you to see if your code has room for improvement - and where it could be improved - in an easy and scalable way.

It doesn't matter if you are coding a one-hundred or a one-hundred thousand-line application, the Flame Graph visualizer will make it easy to spot CPU hogs! After checking some basic how-to steps and recipes, I will take a deeper dive into using perf and Flame Graphs, to demonstrate how to make the most of these tools.

Finally, I'll show you examples through use cases that should help you better understand the purpose behind the workflow and tools.