Entries tagged - "jvm"

LMAX Disruptor v4.0.0


Disruptor logo

If you’ve read this blog before, you may have noticed a cluster of posts from 2013-2016, followed by a suspiciously long silence until late 2025. The main reason for that gap was a job change in mid-2017, when I left Fivium and joined LMAX Exchange Group.

LMAX didn’t discourage blogging - quite the opposite. But the work demanded more focus, the commute was a lot longer, and life outside work also became busier. Something had to give, and unfortunately that something was writing. Lately I’ve been trying to get back into it, which has involved reflecting on some of the more interesting things I’ve worked on over the last decade.

Read more ⟶

Local Perf Testing


btop screenshot

Every so often, I like to do some benchmarking on my own machine. Anyone who’s ever done serious performance measurement is probably already scrambling for the comment section to put me on blast as benchmarking on your desktop is basically the opposite of a controlled environment. But with a few tweaks, you can make it just good enough to trust your results.

This post is a walkthrough of how I prep my local machine for low-jitter, semi-deterministic benchmarking on Linux.

Read more ⟶

JVM Core Dumping


The work I do for Fivium is mostly developing a Java servlet called FOXopen which is a stateful web framework that typically runs on top of Tomcat.

VisualVM View of Java memory

Unfortunately, as with all software, it occasionally crashes and hangs (typically using 100% CPU stuck in a GC loop). When a Java application has hung because of underlying memory issues the best way to investigate the cause would be to dump all the memory, a Heap Dump.

Read more ⟶