Skip to content
Johannes Bechberger edited this page Nov 22, 2023 · 37 revisions

Our team gives many presentations at conferences and meetups all over Europe and elsewhere. We collect these here.

Johannes Bechberger (blog)

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 in 2022 after two years of research studies at the KIT in Java security analyses. His work today comprises many open-source contributions and his blog, where he writes regularly on in-depth profiling and debugging topics and works on his JEP Candidate 435 to add a new profiling API to the OpenJDK.

Since 2023 he's touring the Java User Groups and conferences of Europe, like JavaZone and Devoxx Belgium to speak on various topics.

All of the following talks are his.

Unleash the power of Open-Source Java Profilers

Alternative titles: Profiler Tools for Java | 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 and more, the usage of async-profiler and JMC, and the advantages and disadvantages of the different tools.

The talk will end with personal insights into my profiler development and a successful profiling workflow that resulted from this. https://speakerdeck.com/parttimenerd/unleash-the-power-of-open-source-java-profilers

Collection of reading material

Slides

JavaZone Recording

Date Event Location Media
Nov 21 - 23, 2023 JCon World Online Schedule
Oct 18 - 19, 2023 Basel One  Basel, Switzerland Schedule
Sep 12, 2023 JavaForum Nord Hannover, Germany
Sep 6 - 7, 2023 JavaZone Oslo, Norway Schedule, Recording, Slides
Jun 14, 2023 Karlsruher Entwicklertag Karlsruhe, Germany
Jun 7, 2023 JDriven Full Stack Conference Nieuwegen, Netherlands
May 31, 2023 JUG Milano Milan, Italy Schedule, Recording
Mar 27 - 29, 2023 QCon London London, UK Schedule, Recording
Oct 18, 2022 JUG Karlsruhe Karlsruhe, Germany Schedule, Recording

Writing a Java Profiler in Pure Java

Alternative title: Write your own Java Profiler in 240 lines of pure Java

Profilers help to analyze performance bottlenecks of your application if you know how to use them. Getting to grips with profilers helps to understand how they work: Profilers aren't rocket science. A usable Java profiler can be written in 240 lines of pure Java code, allowing you to fix performance issues and add custom features quickly.

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 based on the same principles.

Collection of reading material

Do you trust

Instrument to Remove: Using Java agents for fun and profit

I'll present you with all the techniques to write a Java agent and javassist based instrumentation code to find unused classes and dependencies in your project. Knowing which classes and dependencies are not used in your application can save you from considering the bugs and problems in these dependencies and classes if you remove them, helping to guard against supply chain attacks.

Java agents and instrumentation of a few lines of code can save you a lot of effort and implementing them is great fun :)

Reading material: Instrumenting Java Code to Find and Handle Unused Classes and Class Loader Hierarchies

Debugging Unveiled: Exploring Debugger Internals and Hidden Gems

Alternative title: Debugging Unveiled: Exploring Debugger Internals to Make You a Better Developer

​​Debuggers are indispensable tools for Java developers, empowering them to conquer bugs and unravel complex systems. But have you ever wondered how they work? Curious about the implementation of features like conditional breakpoints and remote debugging? Wondering about all the cool features in modern IDEs, how they are implemented and how IDEs even communicate with your JVM?

Join me for a deep dive into debuggers, unlocking their secrets and hidden gems to maximize their potential.

Reading material: JDWP-related blog posts, JDWP-tunnel

Clone this wiki locally