Jean-Philippe Bempel's Avatar

Jean-Philippe Bempel

@jpbempel

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

681
Followers
92
Following
16
Posts
24.12.2023
Joined
Posts Following

Latest posts by Jean-Philippe Bempel @jpbempel

youtu.be/PgcitUngWEk
Simple update, Graph debugger (qux, S-of-N), Storage types, tagged/untagged unions, Constexpr, partial eval, AST walking. Sea of Nodes eval vs Tier 0 JIT. NonBlockingHashMap design vs caches, hashCode, attack against

07.03.2026 03:25 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

✏️ JEP 8344154 was drafted
Title: Convenience Methods for JSON Documents
Type: feature
Component: core / util
See openjdk.org/jeps/8344154

04.03.2026 00:23 πŸ‘ 5 πŸ” 2 πŸ’¬ 0 πŸ“Œ 2
Post image

New blog: Testing the Datadog Explain Plan Visualizer with Oracle execution plans

tanelpoder.com/posts/testin...

01.03.2026 05:22 πŸ‘ 10 πŸ” 6 πŸ’¬ 1 πŸ“Œ 0

youtu.be/E-M2Ccw3Kfw
Super light C++ stdlib. Keybindings & cross-OS muscle memory. AIs and their uses. Good CLI tools. VCS. Win 11 bashing. Levo editor story. Simple update - classless main execution, static.

27.02.2026 21:42 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

✏️ JEP 8372760 was drafted
Title: JFR: In-Process Data Redaction
Type: feature
Component: hotspot / jfr
See openjdk.org/jeps/8372760

16.02.2026 09:24 πŸ‘ 3 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
Redacting Sensitive Data from Java Flight Recorder Files - Mostly nerdless Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files.

Redact sensitive data from Java Flight Recorder and JVM crash logs with jfr-redact, a tool for safely sharing profiling and error files:

mostlynerdless.de/blog/2026/02...

13.02.2026 11:36 πŸ‘ 7 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0

youtu.be/I1cdM-K7WIw
Coffee Compiler Club - IR and type representations; ptr-pairs (type classes) vs embedded types ptr (java style). LLVM vs C2 object description. Type aliasing & compiler opts. Whole lotta state-of-the-AI conversation

13.02.2026 22:15 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Writing a .NET Garbage Collector in C#β€Š - PartΒ 7: Marking handles Using NativeAOT to write aΒ .NET GC in C#. In the seventh part, we scan and update the handles during the mark phase of the garbage collection.

I published a new article in my "Writing a .NET GC in C#" series. This time, we implement a better storage for the handles, and we properly mark them during garbage collection. We also see why DependentHandles are annoying to deal with.

minidump.net/writing-a-ne...

10.02.2026 10:53 πŸ‘ 4 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
10+ reasons to NOT use JDK’s HttpClient Java mostly, and general tech

Using the #JDK HttpClient, or … not.
Well it depends on each one’s use cases.

blog.arkey.fr/2026/02/08/t...

10.02.2026 22:06 πŸ‘ 5 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Coffee Compiler Club, 2026_01_16
Coffee Compiler Club, 2026_01_16 YouTube video by Cliff Click

youtu.be/aN8-fn5sXME
Etherium interp, best? coding practices, getters, setters. Locking, old code in prod. Byzantine vs Paxos. unspec'd JSON, CSV. VMs, Cloud, Erlang, XTC, CPS, hierarchical timewheel. Interactive, gas,quotas. Concurrency, gradle. CI/CD, cbuild demo. comptime, metaprogramming

30.01.2026 23:40 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

A free SQL explain plan visualizer tool by @datadoghq

Currently for PostgreSQL, MySQL, MSSQL and MongoDB

explain.datadoghq.com

28.01.2026 23:18 πŸ‘ 14 πŸ” 8 πŸ’¬ 1 πŸ“Œ 2

✏️ JEP 8376595 was drafted
Title: Lazy Constants (Third Preview)
Type: feature
Component: core / lang
Release: 27
See openjdk.org/jeps/8376595

28.01.2026 19:23 πŸ‘ 1 πŸ” 3 πŸ’¬ 0 πŸ“Œ 1
Preview
Writing a .NET Garbage Collector in C#β€Š - PartΒ 6: Mark and Sweep Using NativeAOT to write aΒ .NET GC in C#. In the sixth part, we start implementing the mark phase of the garbage collection.

After a long wait, I've finally published the sixth part in my "Writing a .NET Garbage Collector in C#" series. Today, we start implementing mark and sweep.

minidump.net/writing-a-ne...

27.01.2026 10:26 πŸ‘ 11 πŸ” 6 πŸ’¬ 0 πŸ“Œ 0
Coffee Compiler Club, 2026_01_16
Coffee Compiler Club, 2026_01_16 YouTube video by Cliff Click

youtu.be/c1idAa4vV54
Concurrent hashmap, malloc vs GC vs thread-local, CAS, contention, atomics, arenas, pools. Capabilities, AI search vs grep. Channels vs mutex vs coroutines vs locks vs fork-join vs NBHM. Hotswap in HS, stack editing , unwinding, dynamic code loading

24.01.2026 02:44 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Post image

Updated JOL and heapdump-estimates in it specifically to better support JDK 25. We use this tool to quickly glance where are the opportunities in our real services. Streaming heap dump analysis allows doing this on multi-hundred GB heap dumps. Builds: builds.shipilev.net/jol/

21.01.2026 18:27 πŸ‘ 16 πŸ” 8 πŸ’¬ 0 πŸ“Œ 0
Release Loader for 4.3 (v11): Native lock profiling and latency filter Β· jvm-profiling-tools/ap-loader ap-loader v11 Fixed JfrSync #25 The following is copied from the wrapped async-profiler release by Andrei Pangin. The source code linked below should be ignored. v4.3 Features #1547: Native lock...

Async-profiler has released an update that includes native lock profiling and a latency filter. Consequently, ap-loader, which wraps async-profiler in a platform-independent JAR, has also been updated: github.com/jvm-profilin...

21.01.2026 08:50 πŸ‘ 2 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
Reading and Writing JFR Files Programmatically - Mostly nerdless JFR is great, but do you know how to read and write JFR files programmatically? Learn more in this week's blog post.

JFR is great, but do you know how to read and write JFR files programmatically? Learn more in this week's blog post: mostlynerdless.de/blog/2026/01...

19.01.2026 07:43 πŸ‘ 4 πŸ” 2 πŸ’¬ 0 πŸ“Œ 0
Preview
How a 40-Line Fix Eliminated a 400x Performance Gap | QuestDB A deep dive into an OpenJDK commit that replaced slow /proc file parsing with a single syscall, revealing obscure Linux kernel internals and a 20-year-old optimization opportunity.

I did some OpenJDK commit exploration and I thought I could blog about it too. Here it is: questdb.com/blog/jvm-cur...

13.01.2026 23:43 πŸ‘ 4 πŸ” 4 πŸ’¬ 0 πŸ“Œ 0

youtu.be/THGQWjxk0zU
Rust borrow checker co/contra variant, handles. Mojo lifetimes. Optimizing a dataflow graph, speedup Sea of Nodes. Compiler & IR design choices, SSA. LLVM, Frontends, Functional programing. Scheduler, map implementation, mutexes, non-blocking, threads

10.01.2026 20:15 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Coffee Compiler Club, 2026_01_2
Coffee Compiler Club, 2026_01_2 YouTube video by Cliff Click

youtu.be/k1oMyH9jljA
CCC Concurrency, race conditions, graph traversal, futures. Simple update, static global data, separate compile, compile-time exec, std lib, errors. Chapter 25, elf writer, in-mem linking & exec. War stories. Hashgraph. Ryan bug fix, conc hashmap

04.01.2026 18:22 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Quickly Inspect your Java Application with JStall - Mostly nerdless Learn about JStall, a tool that helps you quickly answer the question: "What is my Java application doing right now?"

I hope I'm not the only one who sometimes wonders: "What is my Java application doing right now?" When you don't see any output. This is where my tiny tool called JStall comes in, as you can read in my blog post at mostlynerdless.de/blog/2025/12...

30.12.2025 11:11 πŸ‘ 17 πŸ” 10 πŸ’¬ 1 πŸ“Œ 1

youtu.be/nyOR3H9txP4
No google emails, hashgraph, smart contracts, GC, Ethereum. Foreign langs and programming. Build systems, deterministic build, concurrent builds, mail providers.

19.12.2025 21:01 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Mount Mayhem at Netflix: Scaling Containers on Modern CPUs

14.12.2025 16:16 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
Don't use Arrays or other Complex Types in Custom JFR Events - Mostly nerdless Learn about arrays and complex types in custom JFR events and about all the supported field types in this weeks blog post.

In this week's blog post, you'll learn that JFR doesn't like arrays in other complex types as fields in custom JFR events, and what types are supported: mostlynerdless.de/blog/2025/12...

12.12.2025 07:49 πŸ‘ 3 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
Preview
How to dump function symbols from aΒ .pdb file Detail how to write a tool that generates aΒ .sym file listing functions symbols with their address, size and signature from aΒ .pdb file

I just implemented a tool accepting a .pdb file to generate a .sym file listing functions symbols. A first post (chnasarre.medium.com/9826fd4f251e...) shows the coding details.
I'm sharing my vibe coding experience using Cursor in a second longer one (chnasarre.medium.com/f957106a3e9f...)

08.12.2025 10:33 πŸ‘ 1 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
Preview
One Positive Effect of Java 25 with Compact Object Headers Enabled Measuring the memory cost of ArrayList and Eclipse Collections FastList

My latest blog: One Positive Effect of Java 25 with Compact Object Headers Enabled

donraab.medium.com/one-positive...

05.12.2025 04:50 πŸ‘ 6 πŸ” 3 πŸ’¬ 0 πŸ“Œ 0
localhost:7071/classes of my meta-agent

localhost:7071/classes of my meta-agent

I'm happy to announce that my meta-agent (a Java agent that instruments other Java agents) now has a nicer Web UI (thanks @hardcoding.fr):

github.com/parttimenerd...

02.12.2025 15:07 πŸ‘ 7 πŸ” 2 πŸ’¬ 1 πŸ“Œ 0

C2: create better fill and copy benchmarks, taking alignment into account

bugs.openjdk.org/browse/JDK-8...
github.com/openjdk/jdk/...

…interesting and informative discussions

Via @forked-franz.bsky.social on twitter x.com/forked_franz...

27.11.2025 08:44 πŸ‘ 2 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0
CFR - yet another java decompiler - What about finally?

TIL: Early exit makes 'javac' to duplicate 'finally' blocks. Interesting read: www.benf.org/other/cfr/fi...

27.11.2025 08:01 πŸ‘ 0 πŸ” 1 πŸ’¬ 0 πŸ“Œ 0

Help--my LocalDate isn’t flattened! Just before my Valhalla talk at JFall, I found out that the early access build can flatten LocalDate arrays, but the latest version from Github cannot. Why? Serialization, of course. Read the gory details at https://horstmann.com/un...

10.11.2025 06:52 πŸ‘ 6 πŸ” 7 πŸ’¬ 0 πŸ“Œ 1