Johannes Bechberger
banner
mostlynerdless.de
Johannes Bechberger
@mostlynerdless.de
OpenJDK hacker at SapMachine, works on hello-ebpf for fun
Running local AI models on Android is easy. In this week's blog post, I showcase my AI server app, which exposes LLMs to Termux and other apps: mostlynerdless.de/blog/2025/11...
Running an LLM on an Android Phone - Mostly nerdless
Running local AI models on Android is easy, in this blog post I show case my AI server app that exposes the LLMs to Termux and other apps.
mostlynerdless.de
November 5, 2025 at 6:26 AM
I just released the newest version of ap-loader, a platform-independent async-profiler wrapper, which is now built on top of async-profiler 4.2: github.com/jvm-profilin...
GitHub - jvm-profiling-tools/ap-loader: Packages async-profiler with binaries for all platforms in a single JAR
Packages async-profiler with binaries for all platforms in a single JAR - jvm-profiling-tools/ap-loader
github.com
October 30, 2025 at 8:25 AM
Learn how to import JFR data into DuckDB, to easily query and analyze your profiling data in this week's blog post: mostlynerdless.de/blog/2025/10...
Making JFR Quack: Importing JFR files into DuckDB - Mostly nerdless
Learn how to import JFR data into DuckDB, to easily query and analyze your profiling data in this weeks blog post.
mostlynerdless.de
October 24, 2025 at 7:48 AM
Learn how to compare objects from JFR recordings in Java and why this is slightly trickier than you might have expected in this week's blog post: mostlynerdless.de/blog/2025/10...
JFR and Equality: A tale of many objects - Mostly nerdless
Learn how to compare objects from JFR recordings in Java and why this is slightly trickier than you might have expected.
mostlynerdless.de
October 10, 2025 at 9:40 AM
Learn how to silence the JFR startup messages and why you see them even with the default warning logging level in this week's blog post: mostlynerdless.de/blog/2025/09...
Silencing JFR's Startup Message - Mostly nerdless
Learn how to disable the JFR startup messages and why you see them even with the default warning logging level.
mostlynerdless.de
September 26, 2025 at 7:07 AM
Reposted by Johannes Bechberger
💪 Monday motivation: We are officially one month away from #P99CONF. eBPF has always been a popular topic, and this year is no exception. Don't miss @tanelpoder.com, @ddelnano.bsky.social, Jake Hillion, and @mostlynerdless.de on October 22-23: www.p99conf.io?latest_sfdc_...

#ScyllaDB
September 22, 2025 at 1:45 PM
Learn seven different ways to waste a specific amount of CPU-time in this week's blog post. Number seven will surprise you: mostlynerdless.de/blog/2025/09...
How to waste CPU like a Professional - Mostly nerdless
In this week's blog post, you'll learn seven different ways to waste a specific amount of CPU-time. Number seven will surprise you.
mostlynerdless.de
September 19, 2025 at 8:02 AM
With Java 25, there is finally a CPU-time profiler in the OpenJDK.

You can read more about this new profiler and some implementation details in my blog series starting with mostlynerdless.de/blog/2025/06... #java25
Java 25's new CPU-Time Profiler (1) - Mostly nerdless
Learn all about Java 25's new CPU-time profiler and why it matters in this weeks blog post from the creator himself.
mostlynerdless.de
September 17, 2025 at 12:28 PM
Learn how to profile Java applications in Cloud Foundry using the CF CLI Java plugin with SapMachine in my latest blog post: mostlynerdless.de/blog/2025/09...
Profiling with the Cloud Foundry CLI Java plugin - Mostly nerdless
Learn all about profiling with our CF CLI Java plugin and all the other awesome features to make your life easier.
mostlynerdless.de
September 9, 2025 at 8:24 AM
Learn about the redundant synchronisation in the request queue of Java 25's new CPU time sampler and what we do about it in this week's blog post: mostlynerdless.de/blog/2025/09...

P.S.: It also answers the really important question of whether the sampler queue is even a queue.
Java 25’s new CPU-Time Profiler: Removing Redundant Synchronization (4) - Mostly nerdless
Learn about the redundant synchronisation in the request queue of Java 25's new CPU time sampler and what we do about it in this blog post.
mostlynerdless.de
September 1, 2025 at 9:34 AM
I just released a new version of my IntelliJ profiler plugin with support for the newest IntelliJ version and the newest async-profiler: plugins.jetbrains.com/plugin/20937...
Java JFR Profiler - IntelliJ IDEs Plugin | Marketplace
An open-source profiler plugin for JDK 11+ based on JFR, async-profiler and Firefox Profiler. This plugin supports profiling your Java applications directly in...
plugins.jetbrains.com
August 27, 2025 at 2:50 PM
Queue sizing is hard. Learn all about the sizing of the sampling queues in JDK 25's new CPU-time profiler in my latest blog post at mostlynerdless.de/blog/2025/08...
Java 25's new CPU-Time Profiler: Queue Sizing (3) - Mostly nerdless
Learn everything you didn't want to know about sizing the sampling queue in JDK 25's new CPU-time profiler.
mostlynerdless.de
August 25, 2025 at 11:03 AM
Sneak peek into my upcoming blog post:
August 22, 2025 at 10:22 AM
Reposted by Johannes Bechberger
To get you ready for @mostlynerdless.de and @jakehillion.me’s #P99CONF technical session on the Linux scheduler, we're sharing a deep dive from Johannes' hello-ebpf series that looks at concurrency testing using Custom Linux schedulers. www.p99conf.io/2025/08/06/h...

#ScyllaDB
Hello eBPF: Concurrency Testing using Custom Linux Schedulers
How anyone can write a basic Linux scheduler and use it, for example, to fuzz for concurrency bugs or optimize for specific workloads.
www.p99conf.io
August 7, 2025 at 3:34 PM
Seems like I won't be part of the great Devoxx Belgium conference this year.
August 6, 2025 at 7:43 AM
TIL: the k3s uninstall script changes the hostname
August 4, 2025 at 3:59 PM
In this week's blog post, learn how Java 25's new CPU-time profiler works internally, including signal handling, queue design, and async sampling: A deep dive into the core components behind the scenes.
Read more at: mostlynerdless.de/blog/2025/07...
#Java #OpenJDK #JFR #Profiling
Java 25's new CPU-Time Profiler: The Implementation (2) - Mostly nerdless
In this week's blog post, learn how Java 25's new CPU-time profiler in OpenJDK works internally and why concurrency is challenging.
mostlynerdless.de
July 30, 2025 at 10:09 AM
I'm currently working on my blog post on the inner workings of the new JFR CPU-time profiler. But if you want to learn what other ideas I had, you can read my brain-dump ideas list from March 2025 at mostlynerdless.de/blog/2025/07...
Profiling idea (unsorted from March 2025) - Mostly nerdless
This is my actual collection of ideas from March 2025, when it was unclear whether the updated JFR sampling at safepoints made it into JDK 25. It eventually did, so I scrapped the ideas. But it offers...
mostlynerdless.de
July 29, 2025 at 9:54 AM
I just saw that I published my last blog post more than a month ago. Guess what I'll be working on this week? I procrastinated and had other things to do, so I hope I get into my blogging rhythm again. There are many interesting topics (short and longer) lined up.
July 28, 2025 at 8:22 AM
I just released ap-loader 4.1 (v10). ap-loader is a wrapper around async-profiler, conveniently packaging all platform versions in one JAR.

You can find the newest release on GitHub (github.com/jvm-profilin...) and soon on Maven Central.
Release Loader for 4.1 (v10): OpenTelemetry support and improved native memory profiler · jvm-profiling-tools/ap-loader
ap-loader v10 Drop support for async-profiler < 4.0 versions, as 4.0 changed how its tested Major changes in the usage of the JFR conversion made by async-profiler which are not hidden Clean up th...
github.com
July 28, 2025 at 6:39 AM
Btw. Firefox isn't supporting Java applets for 10 years (blog.mozilla.org/futurereleas...) and Chrome for 11 (blog.chromium.org/2013/09/sayi...), so essentially nobody will notice the removal of applets from Java.
July 8, 2025 at 8:23 PM
RIP Java Applets. You made Java popular and helped it grow to what it is today.

JEP 504: Remove the Applet API has been proposed to target (openjdk.org/jeps/504), so there will be no more applets with the next JDK (JDK 26).
July 7, 2025 at 2:53 PM
Forget `dd`, `yes >> $HOME/fill_disk.txt` is the best way to reliably fill your disk till the brim. No need to check how much space is left. I used this successfully to test that a tool I'm working on works as expected without disk space left.
July 4, 2025 at 7:10 AM
TIL: `jcmd $PID GC.heap_dump $FILE` wants the $FILE to either be an absolute location or relative to the current working directory of the Java application (not your current command)
June 27, 2025 at 7:41 AM