🎯 JEP 535 updated to target JDK 28 Title: Shenandoah GC: Generational Mode by Default Type: feature Component: hotspot / gc Release: 28 See openjdk.org/jeps/535
Jean-Philippe Bempel
@jpbempel.bsky.social
Sr Sw Eng @Datadoghq, optimize software running on JVM. Love performance topics and mechanical sympathy supporter. Java Champion & @javamissionctrl committer
🏗️ JEP 539 integrated to JDK 28 Title: Strict Field Initialization in the JVM (Preview) Type: feature Release: 28 See openjdk.org/jeps/539
🏗️ JEP 401 integrated to JDK 28 Title: Value Objects (Preview) Type: feature Release: 28 See openjdk.org/jeps/401
"Connecting" tracing span to a profile with the new Async Profiler Span API krzysztofslusarski.github.io/2026/07/27/s... For what's its worth the @datadoghq.com continous profiler already had for quite some time docs.datadoghq.com/profiler/#co... #async-profiler #opentelemetry #profiling #tracing
[Java][Profiling] Async-profiler + OpenTelemetry spans
[Java][Profiling] Async-profiler + OpenTelemetry spans
krzysztofslusarski.github.io
🎯 JEP 401 updated to target JDK 28 Title: Value Objects (Preview) Type: feature Release: 28 See openjdk.org/jeps/401
🎯 JEP 539 updated to target JDK 28 Title: Strict Field Initialization in the JVM (Preview) Type: feature Release: 28 See openjdk.org/jeps/539
Summer is a good time to revisit the old VMMap 2007 sample from Windows via C/C++ book. I've explained the Windows implementation improvements and the Linux port to this new blog post and the source code is available in github.com/chrisnas/ASMap. chrisnas.github.io/posts/2026-0... Happy reading!
How to map the address space of a process on Windows and Linux
From a 2007 Windows via C/C++ VMMap demo to a modern Windows 11 analyzer and its Linux /proc/smaps counterpart - and why Working Set, RSS/PSS and 'committed' memory do not mean the same thing on the t...
chrisnas.github.io
Hotpatch GC state checks in Shenandoah, yeah! Something that I had in mind for a year or so, and now we have enough scaffolding to actually implement it. This is one satisfying <1 KLOC patch. -- What kind of black magic trickery this is? -- Ha-ha, managed runtimes go brrr.
🎯 JEP 539 proposed to target JDK 28 Title: Strict Field Initialization in the JVM (Preview) Type: feature Component: spec / vm Release: 28 See openjdk.org/jeps/539
🎯 JEP 401 proposed to target JDK 28 Title: Value Objects (Preview) Type: feature Component: spec Release: 28 See openjdk.org/jeps/401
🎯 JEP 535 proposed to target JDK 28 Title: Shenandoah GC: Generational Mode by Default Type: feature Component: hotspot / gc Release: 28 See openjdk.org/jeps/535
An interesting engineering blog on the @datadoghq.com’s continuous profiler on the JVM (for Java 25) www.datadoghq.com/blog/enginee... #JFR #JDK #FlightRecorder #Profiling
Unbiased Java CPU profiling with JFR in JDK 25 | Datadog
Modern Java profilers often rely on unsupported JVM internals for accurate CPU profiling. Here’s how engineers from Datadog, SAP, Amazon, and the OpenJDK community helped bring a new CPU profiling eve...
datadoghq.com
Grouping frequently called C2 nmethods in CodeCache github.com/openjdk/jdk/... included in jdk 27
8326205: Grouping frequently called C2 nmethods in CodeCache by chadrako · Pull Request #27858 · openjdk/jdk
Summary This PR implements JDK-8326205, introducing experimental support for grouping hot code within the CodeCache. Problem Modern CPUs use the branch target buffer (BTB), part of the branch predi...
github.com
youtu.be/V4UlZdW5NpI Newer AI, mem model for Python, volatile, biased locking removal. AA/Simple memory model, LLVM and MSPC bugs. Defending resources in jar/exe. Git philosophy, cross thread access. Simple update, arrays, new, array init. Sea of Nodes as backend
Coffee Compiler Club, 2026_07_17
YouTube video by Cliff Click
youtu.be
I was wrong on LinkedIn and as a punishment I wrote a blog. The blog includes CPU speculations, conditional instructions, questionable benchmarks and a bit of compiler archeology. Enjoy! The blog: questdb.com/blog/cmov-vs...
The Most Expensive Instruction Might Be… cmov | QuestDB
A trip through HotSpot's C2 branch-to-cmov heuristic: it measures branch bias, not predictability, and in a tight loop that mismatch is worth up to 2.9x.
questdb.com
Everything you never wanted to know about CPUs, clocks, compilers and confounding factors for benchmarking! #cppnow2026 www.youtube.com/watch?v=EU_n...
Keynote: Benchmarking - It's About Time - Matt Godbolt - C++Now 2026
YouTube video by CppNow
youtube.com
🔥 Part 2 of my Jeffrey series on DZone — Differential flame graphs. Set a secondary profile and diff two recordings in one graph: red = regression, green = improvement, deep shades = frames that only exist on one side. No more eyeballing two graphs. dzone.com/articles/jav... #Java
Differential Flamegraphs in Java in Jeffrey Microscope
How to set up a secondary profile and pinpoint the precise frames responsible for a performance change between two JFR recordings.
dzone.com
🎓 JEP 401 moved to candidate Title: Value Objects (Preview) Type: feature Component: spec See openjdk.org/jeps/401
youtu.be/fHYYLvtp0xk Grad school? Compiler classes, designing course, small community. Teaching Simple. Reg alloc strategies. Contributors. CCC T-shirts. Simple update, modules, ABI. Software licenses. XTC update. Simple BNF, roadmap, arrays, German & small strings opts
Coffee Compiler Club, 2026_06_26
YouTube video by Cliff Click
youtu.be
Setting references to null for garbage collection? You're probably wasting your time. Here's why that old habit doesn't actually help modern JVMs and what you should focus on instead. By Kirk Pepperdine. foojay.io/today/nullin... #Java #GarbageCollection #JVM
Nulling Out References Won't Help Your Garbage Collector
Learn how intricate and amazing the JVM is and how much cognitive load that it takes on so you rarely have to think about things that steal your focus away from application logic.
foojay.io
🎯 JEP 535 proposed to target JDK 28 Title: Shenandoah GC: Generational Mode by Default Type: feature Component: hotspot / gc Release: 28 See openjdk.org/jeps/535
✅ JEP 523 is now complete Title: Make G1 the Default Garbage Collector in All Environments Type: feature Component: hotspot / gc Release: 27 See openjdk.org/jeps/523
youtu.be/xP9rioNvErM Simple update, AI for grunt work, AI mimicking code style. Debug broken peepholes. SAT solvers. Strange peephole opts, exploring peep space. Linear logic IR, using many IR`s, war stories, large crash logs, coding styles, optimizer suggested refactoring
Coffee Compiler Club, 2026_07_03
YouTube video by Cliff Click
youtu.be
I published part 10 of my "Writing a .NET Garbage Collector in C#" series: minidump.net/writing-a-ne... This time, I implemented support for finalization, which reveals some intricacies of the .NET runtime.
Writing a .NET Garbage Collector in C# - Part 10: Finalizers
Using NativeAOT to write a .NET GC in C#. In this part, we add support for finalization.
minidump.net
youtu.be/jwxfR7fj-UA CI fails, gradle, life beyond claude limits. Build tools, GPT for coding emacs. Local AI, what size, laptop, power. Simple and Quxlang updates, halting problem in const expr, inlining, embed, build.rs, and your compiler as an exec strategy
Coffee Compiler Club, 2026_06_26
YouTube video by Cliff Click
youtu.be
Let's dig into the new cDAC way to access .NET runtime internals :^) chrisnas.github.io/posts/2026-0... Happy reading!
Reading CLR internals the cDAC way: contracts instead of the DAC
Why .NET is replacing the DAC with the cDAC data contracts, how they work locally / over a process / from a dump, and how to map the GitHub .md contracts to C# - with a from-scratch !eeheap as a worki...
chrisnas.github.io
Built a full terminal emulator in a single Java file. jhostty — probably the most portable terminal in the world. Splits, tabs, 10 themes, per-pane zoom. Powered by GhosttyFX. jbang jhostty@maxandersen github.com/maxandersen/jhostty
Compact Object Headers - Reducing Java's Memory Footprint 👉 ionutbalosin.com/2026/04/comp... #Java #JVM #JDK25 #Performance #OpenJDK
Compact Object Headers: Reducing Java’s Memory Footprint by 22% – Ionut Balosin
ionutbalosin.com
youtu.be/Aj2oegogfbg Lazy init, self modifying code. Memory ordering, volatile, fences, Icache. Dynamic linking, LLVM limitations. Simple: .o, linking, relocating, exports, internal patching, more codegen. Simple phases. Switching to Sea of Nodes(SoN), why or why not?
Coffee Compiler Club, 2026_06_05
YouTube video by Cliff Click
youtu.be
AI can be used as a trial developer of your software. If an AI can write effective code, test, and tune it, that a great start. In this exercise, I get an AI to write a low latency benchmark in Java for Chronicle FIX (closed source so not indexed) blog.vanillajava.blog/2026/06/test...
Testing Java Memory Management with Chronicle-FIX using AI
While I am sceptical of using AI for release code, it has plenty of uses that previously weren’t practical, such as determining how easy...
blog.vanillajava.blog