Performance Issues with Virtual Threads + ThreadLocal Caching in Third-Party Libraries (JDK 25)
Alan Bateman
alan.bateman at oracle.com
Sat Jan 24 08:32:54 UTC 2026
On 24/01/2026 05:55, Jianbin Chen wrote:
> :
>
> I constructed the Executor directly with
> Executors.newVirtualThreadPerTaskExecutor();
> however, the run results still show that the pooled virtual‑thread
> behavior outperforms the non‑pooled virtual threads.
This looks like it is benchmarking Thread.sleep so a different topic to
that of libraries that are caching objects in thread locals.
For the Thread.sleep test then it would easier to discuss if converted
to a JMH benchmark as there are warmup issues in the test you included.
Also just to note that the Thread.sleep implementation has changed
significantly changed since JDK 21 so you will see very different
results with JDK 25 runs (some of the messages in the discussion speak
of JDK 21, the subject line in the mails say "JDK 25", so I'm guessing
you might be testing both).
-Alan
More information about the loom-dev
mailing list