RSSAmplifier

Blog

Jonas Norlinder

Oracle JVM Engineer. GC researcher. Empirical research and deep dives into the OpenJDK HotSpot mainline, ZGC, and Java performance.

norlinder.nuRSS feed ↗5 posts

Latest posts

Dissecting the CPU-Memory Relationship in Garbage Collection

Every time you configure a Java application's heap size, you are essentially making a trade-off spending more on infrastructure to improve performance metrics such as throughput or latency. Historically, this trade-off was visible when an undersized heap triggered long pauses, signaling a need for more resources. With modern collectors, however, pause duration and computational effort have become…

One Giant Leap: 95% Less Sampling Cost

Imagine your company is managing a large-scale data processing system, and every second counts. You're constantly seeking ways to reduce latency and optimize performance. Now, consider the impact of speeding up thread monitoring on user CPU time by 20 times. The public standard in Linux for reading thread CPU time is the computational equivalent of printing a spreadsheet to paper, then scanning it…

On the Boundaries of Final

A deep dive into JEP 500 and the Java Memory Model to understand the formal boundaries of 'final'. We examine JLS §17, unsafe publication, and why immutable fields can still appear mutable in concurrent environments.

Mark-Scavenge: Waiting for Trash to Take Itself Out (Blog Post on inside.java)

Modern GCs often waste cycles moving objects that are reachable but effectively dead. We introduce Mark-Scavenge, a novel algorithm for ZGC that delays evacuation to let 'trash take itself out,' reducing dead object relocation by up to 91%.

Mark–Scavenge: Waiting for Trash to Take Itself Out (Talk)

In modern concurrent garbage collectors like ZGC, moving objects safely while the application is running requires significant CPU resources. But what if we could avoid moving objects that are about to die anyway? At OOPSLA ‘24, I presented Mark-Scavenge, a new approach to concurrent garbage collection. By implementing a “lazy relocation” algorithm, we can wait for trash to take itself out, red...