Talks

Besides blogging every two weeks on a profiling topic, I also started presenting at conferences and Java User Groups. All blog posts are based on one or more blog posts; these posts provide more background information and link to the relevant supplementary material.

The following are the upcoming talks:

Oktober

November

  • JUG Karlsruhe
  • J-Fall Ede (Netherlands)
  • JUG Saarland, 16th November: Debugging Unveiled: Exploring Debugger Internals
  • JCon World online conference, 21st November: Unleash the power of Open-Source Java Profilers has been accepted

Other Recordings


The following are my past talks, I’m happy to give these talks at your local JUG or Meetup:

JavaZone and JavaForumNord

I gave my profiling talk at the beginning of September in two locations:

You can find more on this profiling at my Profiling Talks page.

July

Gulasch Programmier Nacht Karlsruhe

After coming home, I gave two talks at the GPN, one based on the article Do you trust profilers? I once did, too, and one based on the two articles Instrumenting Java Code to Find and Handle Unused Classes and Class Loader Hierarchies:

A few days later I gave two talks at Karlsruhe Entwicklertag on 14th June: Profiler Tools for Java (same as “Unleash the Power Of Open-Source Profilers”, InfoQ article) and Writing a Java Profiler from Scratch (blog series) with some live coding.

OpenValue Munich Meetup: Writing a Profiler in 240 Lines of Pure Java

(Many people are afraid of Java profilers. But profilers aren’t rocket science: A usable Java profiler can be written in less than 300 lines of pure Java code, helping you to fix performance issues and add custom features fast.

This talk will give the fundamentals of Java profiling and how Java profilers typically work, followed by a detailed explanation of how to develop a functioning profiler in a few lines of Java code. This talk will also explain how you can use it in production to analyze performance issues and show briefly how to work with a widely used open-source profiler that is based on the same principles.

(blog post)

I gave this talk on the 5th of June and a similar one at the JDriven Full Stack Conference in the Netherlands on the 7th of June.

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

I gave my updated QCon talk in Milan on the 31st of May:

QCon London 2023: Your Java Application Is Slow? Check Out These Open-Source Profilers

My first talk at a conference, related to my InfoQ article Unleash the Power of Open Source Java Profilers: Comparing VisualVM, JMC, and async-profiler. This is the basis of most of my other talks.

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

FOSDEM 2023

I gave two talks there at FOSDEM:

Firefox Profiler beyond the web

Like many programming communities, the Java community lacks a simple open-source profiling UI. In the quest to build such a UI, I found the Firefox Profiler to be the closest to an adaptable polyglot profiling UI. This talk presents my Java JFR Profiler plugin for IntelliJ and gives an overview of how to adapt and integrate the Firefox Profiler to use it to view profiling data from different sources, like JDK Flight Recordings.

This talk is based on my blog posts Firefox Profiler beyond the web and Using Firefox Profiler beyond the web which cover my work on my Firefox Profiler based IntelliJ Plugin.

AsyncGetStackTrace

Java profiling relies heavily on the AsyncGetCallTrace API. But this API has major drawbacks: It is unofficial, not well-tested, and omits important information. I propose AsyncGetStackTrace (JEP Candidate 435) as an improved replacement.

This talk will give an overview of AsyncGetCallTrace and AsyncGetStackTrace, their implementations, differences, and use cases, it is based on my blog post AsyncGetStackTrace: A better Stack Trace API for the JVM and related to the JEP Candidate 435.

Java User Group Karlsruhe 2022

My first talk was at my local Karlsruhe JUG on October 18th:

The talk preparation led me to write the blog post Overview of Java Profiling which started my blogging journey, getting me into the rhythm of writing a blog post every two weeks.