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

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

What's the focus of your work these days?

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. 

What's the motivation for your talk at QCon London 2023?

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.

How would you describe your main persona and target audience for this session?

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.

Is there anything specific that you'd like people to walk away with after watching your session?

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


Johannes Bechberger

Software Developer @SAP

Johannes Bechberger is a JVM developer working on profilers and their underlying technology in the SapMachine team at SAP. This includes improvements to async-profiler and its ecosystem, a website to view the different JFR event types, and improvements to the FirefoxProfiler, making it usable in the Java world. He started at SAP last year after two years of research studies at the KIT in the field of Java security analyses. His work today is comprised of many open-source contributions and his blog, where he writes regularly on in-depth profiling and debugging topics.

Read more
Find Johannes Bechberger at:


Tuesday Mar 28 / 04:10PM BST ( 50 minutes )


Churchill (Ground Fl.)


Java Profiler Tools JMC asynchronous programming


From the same track

Session application security

Celebrity Vulnerabilities: Effective Response to Critical Production Threats

Tuesday Mar 28 / 11:50AM BST

Log4Shell, Spring4Shell, are you tired of being told to drop everything and respond to the next critical vulnerability in an open-source package? Chances are, if you work in the engineering team of any software development organization, the answer is yes.

Speaker image - Alyssa Miller
Alyssa Miller

Chief Information Security Officer @EpiqGlobal

Session debugging

Deconstructing an Abstraction to Reconstruct an Outage

Tuesday Mar 28 / 10:35AM BST

Abstractions are what allow us to build the complex applications that we all use day-to-day. For example, it's rare for us to care about the precise details of on-disk storage when building an application — that's why databases exist!

Speaker image - Chris Sinjakli
Chris Sinjakli

Infra Engineer @planetscaledata

Session web development

Observable Frontends

Tuesday Mar 28 / 01:40PM BST

As an industry, we’ve made big strides in working within complexity in microservices: we build in observability with OpenTelemetry standards. But what about client-side? This is the most inscrutable part of our system, because it runs on anyone’s computer.

Speaker image - Jessica Kerr
Jessica Kerr

Principal Developer Evangelist @honeycombio


Unconference: Debugging in Production

Tuesday Mar 28 / 02:55PM BST

What is an unconference? An unconference is a participant-driven meeting. Attendees come together, bringing their challenges and relying on the experience and know-how of their peers for solutions.

Speaker image - Shane Hastie
Shane Hastie

Global Delivery Lead @SoftEd, Lead Editor for Culture & Methods @InfoQ


No Instrumentation Observability With eBPF - Are We There Yet?

Tuesday Mar 28 / 05:25PM BST

Gaining interest for the past few years, eBPF promises zero-instrumentation observability with low performance overhead. Sounds like a dream, but are we there already?

Speaker image - Anna Kapuścińska
Anna Kapuścińska

Software Engineer @Isovalent