Sign in

Jean-Philippe Bempel

@jpbempel.bsky.social
694 followers 93 following 23 posts

Sr Sw Eng @Datadoghq, optimize software running on JVM. Love performance topics and mechanical sympathy supporter. Java Champion & @javamissionctrl committer

PostsRepliesMedia
Reposted by Jean-Philippe Bempel
Kevin Gosse @kevingosse.net · 29/09/2026
I published a new article: the hidden trap of fixed buffers in C#. It explains a quirk of fixed buffers that could easily bite you, if you're one of the few people who still have to use that feature. minidump.net/the-hidden-t...
minidump.net
The hidden trap of fixed buffers in C#
After all, if they’re marked as unsafe, there’s gotta be a reason, right?
164
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 29/09/2026
🎯 JEP 544 updated to target JDK 28 Title: Ahead-of-Time Code Compilation Type: feature Component: hotspot / compiler Release: 28 See openjdk.org/jeps/544
082
Reposted by Jean-Philippe Bempel
Stefan Marr @stefan-marr.de · 27/09/2026
Brief weekend reading on another benchmarking pitfall: The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test norlinder.nu/posts/The-Li... Spoiler: the GC may conspire against you and your data collection!
norlinder.nu
The Limitations of Running a Workload Generator In the Same JVM as the System-Under-Test
If you care about tail latency in SPECjbb2015, Composite mode hides GC impact. We quantify the discrepancy and recommend Distributed or MultiJVM.
064
Reposted by Jean-Philippe Bempel
Erik Österlund @eosterlund.bsky.social · 22/09/2026
It’s true Ron was inspired by my ISMM keynote: conf.researchr.org/details/ismm... But that keynote was really intended for the memory management academics in the room. Ron saw it and thought it would be useful for a wider audience to hear the same message. Great job to Ron for doing that!
conf.researchr.org
Keynote: Industry GC Insights from OpenJDK (ISMM 2025 - International Symposium on Memory Management) - ISMM 2025
Welcome to the home page of the 2025 ACM SIGPLAN International Symposium on Memory Management (ISMM 2025)! ISMM is the premier forum dedicated to research in memory management, covering the areas of m...
152
Reposted by Jean-Philippe Bempel
Erik Österlund @eosterlund.bsky.social · 21/09/2026
If you are like me and don’t enjoy configuring JVM heap sizes (e.g. -Xms, -Xmx, -XX:SoftMaxHeapSize) then finally ”JEP 546: Adaptive Heap Sizing for ZGC” just became a candidate JEP: openjdk.org/jeps/546
openjdk.org
JEP 546: Adaptive Heap Sizing for ZGC
Enhance the Z Garbage Collector (ZGC) to adaptively adjust the size of the heap based on the resources available, the application's needs, and the needs of neighboring applications contending for the same resources.
1105
Reposted by Jean-Philippe Bempel
Erik Österlund @eosterlund.bsky.social · 21/09/2026
Do you trade off startup and warmup by tuning -Xms, -Xmx and -XX:+AlwaysPreTouch appropriately? And did you set -XX:+UseTransparentHugePages together with the appropriate shmem_enabled kernel config? Me neither. ”JEP 545: Faster Startup and Warmup with ZGC” is candidate now: openjdk.org/jeps/545
openjdk.org
JEP 545: Faster Startup and Warmup with ZGC
Improve application startup and warmup by enhancing the Z Garbage Collector to acquire and prepare physical memory more swiftly and efficiently in response to application needs.
042
Reposted by Jean-Philippe Bempel
Christophe Nasarre @chrisnas.bsky.social · 21/09/2026
Let's turn to Claude this week in the third episode of my long series about AI harnesses internals - chrisnas.github.io/posts/2026-0...
chrisnas.github.io
Spying on Claude Code: more lifecycle events, different blind spots
How Claude Code hooks differ from Cursor: broader lifecycle and permission telemetry, strong native IDs, batch and compaction events, but no thought or specialized execution hooks.
022
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 18/09/2026
🎯 JEP 544 proposed to target JDK 28 Title: Ahead-of-Time Code Compilation Type: feature Component: hotspot / compiler Release: 28 See openjdk.org/jeps/544
097
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 21/09/2026
🎓 JEP 546 moved to candidate Title: Adaptive Heap Sizing for ZGC Type: feature Component: hotspot / gc See openjdk.org/jeps/546
052
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 21/09/2026
🎓 JEP 545 moved to candidate Title: Faster Startup and Warmup with ZGC Type: feature Component: hotspot / gc See openjdk.org/jeps/545
062
Jean-Philippe Bempel @jpbempel.bsky.social · 21/09/2026
Aujourd'hui j'ai besoin de documents importants comme mon avis d'imposition. Je vais donc sur le site de impots.gouv.fr Impossible pendant 2/3 jours. Suis-je le seul à penser que sur d'autres types de sites un tel manque de service serait impensable?
000
Reposted by Jean-Philippe Bempel
Aleksey Shipilëv @shipilev.bsky.social · 16/09/2026
✅ JDK 27 shipped yesterday with Shenandoah Late Barrier Expansion (JDK-8366041), gets us 0..20% throughput bump. 🔄 JDK 28 would hopefully ship in Mar 2027 with Shenandoah Hotpatching (JDK-8384415), gets us another 0..5% throughput bump. 🤘 JDK 29 in Sep 2027 would be awesome.
1132
Reposted by Jean-Philippe Bempel
Josh Long 🍃 @starbuxman.joshlong.com · 15/09/2026
What an incredible presentation by Oracle's Ron Pressler on memory management in Java www.youtube.com/watch?v=xr73mR7ii9M
youtube.com
143
Reposted by Jean-Philippe Bempel
Mark Reinhold @mreinhold.org · 15/09/2026
Java 27 / JDK 27: General Availability: mail.openjdk.org/archives/lis... Features: openjdk.org/projects/jdk... Downloads: jdk.java.net/27/ #Java27 #JDK27 #OpenJDK #Java
04425
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 10/09/2026
🎓 JEP 544 moved to candidate Title: Ahead-of-Time Code Compilation Type: feature Component: hotspot / compiler See openjdk.org/jeps/544
073
Reposted by Jean-Philippe Bempel
Brice Dutheil @bricedutheil.bsky.social · 25/08/2026
This does not surprise me, even somewhat expected. Anyway, that's a good read! #virtual_threads
001
Jean-Philippe Bempel @jpbempel.bsky.social · 20/08/2026
How we improved APM Java startup by encoding a prefix trie as a JVM constant www.datadoghq.com/blog/enginee... by Stuart McCulloch
datadoghq.com
How we improved APM Java startup by encoding a prefix trie as a JVM constant | Datadog
Learn how the Datadog APM team improved Java startup performance by encoding a prefix trie as a JVM string constant.
133
Reposted by Jean-Philippe Bempel
Stefan Marr @stefan-marr.de · 20/08/2026
Benchmarking is hard, and there are many pitfalls out there. Let's look at some fictitious examples and think of what could have caused the behavior we are seeing: stefan-marr.de/2026/08/pitf...
stefan-marr.de
Pitfalls of Benchmarking on Modern Systems
Modern hard- and software systems have a lot of features, which make programs fast, but can make it difficult to understand what is going on. Let's look at some fictitious benchmark results a think th...
065
Jean-Philippe Bempel @jpbempel.bsky.social · 19/08/2026
Why is Arrays.fill 265 times slower on G1GC Good article from Krzysztof Ślusarski krzysztofslusarski.github.io/2026/08/19/g...
krzysztofslusarski.github.io
[Java][JVM][Tuning][Profiling][G1][JIT] Why is Arrays.fill 265 times slower on G1GC?
[Java][JVM][Tuning][Profiling][G1][JIT] Why is Arrays.fill 265 times slower on G1GC?
064
Reposted by Jean-Philippe Bempel
Cay Horstmann @horstmann.com · 16/08/2026
My trip report from JCrete: horstmann.com/un...
143
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 11/08/2026
📦 JEP 534 delivered to JDK 27 Title: Compact Object Headers by Default Type: feature Component: hotspot / runtime Release: 27 See openjdk.org/jeps/534
082
Reposted by Jean-Philippe Bempel
Mark Reinhold @mreinhold.org · 10/08/2026
The first part of OpenJDK’s Project Valhalla, JEP 401 (Value Objects), has been integrated into JDK 28 as a preview feature and is now available in the early-access builds. More information: openjdk.org/projects/val... #JDK28 #OpenJDK #Java
07236
Reposted by Jean-Philippe Bempel
Quarkus @quarkus.io · 06/08/2026
The OpenJDK team says don't pool virtual threads. We tested that advice with data, tried to fix the JVM when pooling broke, and discovered why the fix made things worse. Learn more in this blog post by Francesco Nigro. quarkus.io/blog/to-cach...
To Cache or Not to Cache Virtual Threads" blog post by Francesco Nigro.
054
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 07/08/2026
CCC for July 14, 2026. youtu.be/F6fKY9xDI7Q ChatGPT making Java libs. AST lowering. Mac binaries. Qux lang hard parts. GC. Generating executables, relocations. Qux lang variance and unions. Benchmark ports, spiral expressions, variance , clover generics. Branch opts.
youtu.be
Coffee Compiler Club, 2026_07_24
YouTube video by Cliff Click
101
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 07/08/2026
CCC for Aug 7, 2026 youtu.be/wipWVo3PYAQ @JCreteUnconf JVM target for Quxlang, syntax, 3-way cmp, inline decisions, precompile. Comparison on Clover, ‘is’ binding. Visibility, private/public, Locks, ranking locks. 54 Locks in (early)JVM, striped locks. “Final” prog lang.
youtu.be
Coffee Compiler Club, 2026_08_07
YouTube video by Cliff Click
002
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 04/08/2026
🎯 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
012
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 31/07/2026
🏗️ JEP 539 integrated to JDK 28 Title: Strict Field Initialization in the JVM (Preview) Type: feature Release: 28 See openjdk.org/jeps/539
062
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 31/07/2026
🏗️ JEP 401 integrated to JDK 28 Title: Value Objects (Preview) Type: feature Release: 28 See openjdk.org/jeps/401
0103
Reposted by Jean-Philippe Bempel
Brice Dutheil @bricedutheil.bsky.social · 29/07/2026
"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
krzysztofslusarski.github.io
[Java][Profiling] Async-profiler + OpenTelemetry spans
[Java][Profiling] Async-profiler + OpenTelemetry spans
002
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 31/07/2026
🎯 JEP 401 updated to target JDK 28 Title: Value Objects (Preview) Type: feature Release: 28 See openjdk.org/jeps/401
093
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 31/07/2026
🎯 JEP 539 updated to target JDK 28 Title: Strict Field Initialization in the JVM (Preview) Type: feature Release: 28 See openjdk.org/jeps/539
032
Reposted by Jean-Philippe Bempel
Christophe Nasarre @chrisnas.bsky.social · 27/07/2026
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!
chrisnas.github.io
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...
001
Reposted by Jean-Philippe Bempel
Aleksey Shipilëv @shipilev.bsky.social · 23/07/2026
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.
072
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 23/07/2026
🎯 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
023
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 23/07/2026
🎯 JEP 401 proposed to target JDK 28 Title: Value Objects (Preview) Type: feature Component: spec Release: 28 See openjdk.org/jeps/401
0137
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 24/07/2026
🎯 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
023
Reposted by Jean-Philippe Bempel
Brice Dutheil @bricedutheil.bsky.social · 22/07/2026
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
datadoghq.com
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...
001
Jean-Philippe Bempel @jpbempel.bsky.social · 21/07/2026
Grouping frequently called C2 nmethods in CodeCache github.com/openjdk/jdk/... included in jdk 27
github.com
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...
034
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 18/07/2026
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
youtu.be
Coffee Compiler Club, 2026_07_17
YouTube video by Cliff Click
001
Reposted by Jean-Philippe Bempel
Jaromir Hamala @jerrinot.bsky.social · 16/07/2026
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...
questdb.com
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.
034
Reposted by Jean-Philippe Bempel
Matt Godbolt @matt.godbolt.org · 14/07/2026
Everything you never wanted to know about CPUs, clocks, compilers and confounding factors for benchmarking! #cppnow2026 www.youtube.com/watch?v=EU_n...
youtube.com
Keynote: Benchmarking - It's About Time - Matt Godbolt - C++Now 2026
YouTube video by CppNow
1477
Reposted by Jean-Philippe Bempel
Petr Bouda @pbouda.bsky.social · 14/07/2026
🔥 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
dzone.com
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.
013
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 14/07/2026
🎓 JEP 401 moved to candidate Title: Value Objects (Preview) Type: feature Component: spec See openjdk.org/jeps/401
0224
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 11/07/2026
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
youtu.be
Coffee Compiler Club, 2026_06_26
YouTube video by Cliff Click
001
Reposted by Jean-Philippe Bempel
Foojay, the Friends Of OpenJDK @foojay.io · 10/07/2026
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
foojay.io
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.
1104
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 08/07/2026
🎯 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
013
Reposted by Jean-Philippe Bempel
JEP Tracker @jeptracker.bsky.social · 08/07/2026
✅ 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
023
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 03/07/2026
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
youtu.be
Coffee Compiler Club, 2026_07_03
YouTube video by Cliff Click
001
Reposted by Jean-Philippe Bempel
Kevin Gosse @kevingosse.net · 01/07/2026
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.
minidump.net
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.
076
Reposted by Jean-Philippe Bempel
Cliff Click @cliffclick.bsky.social · 26/06/2026
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
youtu.be
Coffee Compiler Club, 2026_06_26
YouTube video by Cliff Click
011