Your Java Application Is Slow? Check Out These Open-Source Profilers

QCon London 2023

Session Java

Your Java Application Is Slow? Check Out These Open-Source Profilers

Tuesday Mar 28 / 04:10PM BST, Churchill (Ground Fl.)

Abstract

Profilers help to analyze performance bottlenecks of your application - if you know which to use and how to work with them.

There are many open-source profilers, like async-profiler or JMC. This talk will give you insights into these tools, focusing on:

  • Understanding the basic concepts of profiling like flame graphs, ...
  • Usage of async-profiler and JMC
  • Advantages and disadvantages of the different tools

Interview

My current focus is that I want to make profiling easier for everyone. So what I'm mostly doing is working behind the scenes in the OpenJDK, creating a new profiling API that makes it easier to develop profiling tools. This makes it safer because we've seen that the current profiling tools use an undocumented API of the OpenJDK.

I'm working on the OpenJDK and a proposal for a new profiling APi. Furthermore, I worked on ap-loader, which wraps the async-profiler and on a new profiling UI that is integrated into an IntelliJ plugin - so it can profile applications directly from the IntelliJ IDE without using any commercial plugins. This UI is based on Firefox Profiler and I use it almost daily to profile and to view profiling data. 

My motivation for this talk and for the other talks I've given is the same as the motivation for my blog posts. I want to make profiling more accessible. Currently, I see that we have many nice profiling tools like JDK Mission Control, but we have the problem that we don't have the educative resources for this.

We either have resources that are really top level that say, there's this tool, or we have resources that say, you need this API. I want to bridge this gap, and in my talk I want to test this top level information, but then go deeper down into the depths of OpenJDK and show you how it's really done. I think the first thing that you need to understand is that profiling isn't magic. Profiling is just a tool in your toolbox that you can use.

I think that the persona would be a person that knows Java quite well. It's a person that wants to know more about profiling, that wants to get into profiling and wants to see what open source offers.

There's also the person that wants to go down this rabbit hole, see how it's all done, and also wants to see how they could write their own profile - to see how profilers work, because that's one of the great things in the open source world. You can just look into it, modify it and even do your own.

It's basically people that want to know more about profiling and want to go down and see how it really is implemented.

That profiling isn't magic. It's just another thing in your toolbox, like debuggers.

Topics

Java Profiler Tools JMC asynchronous programming
76% senior dev or higher
1:11 speaker ratio
60+ practitioners

QCon London 2023 is a three day conference for senior software engineers, architects and team leads. An international program committee of working engineers selects every session. Patterns and practices, not products and pitches.

Share

From the same track

Tuesday 28 March

10:35 Churchill (Ground Fl.) Session debugging Deconstructing an Abstraction to Reconstruct an Outage Chris Sinjakli Infra Engineer @planetscaledata 11:50 Fleming (3rd Fl.) Session application security Celebrity Vulnerabilities: Effective Response to Critical Production Threats Alyssa Miller Chief Information Security Officer @EpiqGlobal 13:40 Churchill (Ground Fl.) Session web development Observable Frontends Jessica Kerr Principal Developer Evangelist @honeycombio 14:55 Rutherford (4th Fl.) Unconference Unconference: Debugging in Production Shane Hastie Global Delivery Lead @SoftEd, Lead Editor for Culture & Methods @InfoQ 16:10 Churchill (Ground Fl.) Session Java Your Java Application Is Slow? Check Out These Open-Source Profilers Johannes Bechberger Software Developer @SAP 17:25 Mountbatten (6th Fl.) Session No Instrumentation Observability With eBPF - Are We There Yet? Anna Kapuścińska Software Engineer @Isovalent