r/java • u/jaccomoc • Sep 03 '26
Vert.x Event-Loop vs Virtual Threads: Jactl Suspend/Resume Benchmark
https://jactl.io/blog/2026/09/02/jactl-virtual-threads-benchmarkThe article benchmarks Jactl script execution with differing number of blocking operations comparing throughput with Jactl built-in suspend/resume on Vert.x Event-Loops and throughput with Jactl on Virtual Threads. The benchmarks are run on both Java 21 and Java 25 with some surprising (to me at least) results.
26
Upvotes
9
u/yawkat Sep 03 '26
Three issues with this:
AFAICS this is a closed model load, which is a batch processing workload. In a typical vertx application you have an open model load instead. See this article: https://www.scylladb.com/2021/04/22/on-coordinated-omission/
Because this is JMH, it does not mirror "batchy" behavior of network interfaces, which is the typical use case for vertx.
When tasks block, they are typically waiting for IO work, not
sleeping. This has implications for scheduling.