On Fri, 27 Mar 2026 06:24:46 GMT, Francesco Nigro <[email protected]> wrote:
>> Ported from 7ac9ca128885c5dd561e6fbd6bbeaddb86d6264c to the latest upstream >> fibers branch. Adapted to the current API which renamed >> implRegister/implDeregister to implStartPoll/implStopPoll and added >> Mode/EventFD/Cleaner/PollerGroup architecture. > > Francesco Nigro has updated the pull request incrementally with one > additional commit since the last revision: > > Multi-server echo and non-spinning select for poller benchmark > > Use multiple NIO server instances (configurable via @Param serverCount) > with round-robin client connections to remove the server as a bottleneck > when scaling carrier parallelism. > > Switch from selectNow() (spinning) to select(1) (blocking with 1ms > timeout) to avoid wasting CPU and polluting perfnorm measurements. > > Reset AtomicBoolean guard and round-robin counter in tearDown() to > support multi-fork JMH runs. Another test, this time with "sustainable throughput". ## EPOLL ET vs ONE_SHOT: VIRTUAL_NETTY at sustainable rate (35K req/s) 10K connections, 30ms mock RTT, 2 server cores. ### Command JAVA_HOME=<jdk> OUTPUT_DIR=<out> ./run-benchmark.sh \ --mode VIRTUAL_NETTY --threads 2 --io nio \ --server-cpuset "4-5" --mock-cpuset "8-11" --load-cpuset "0-3" \ --jvm-args "-Xms8g -Xmx8g" \ --connections 10000 --load-threads 4 \ --mock-think-time 30 --mock-threads 4 \ --rate 35000 --perf-stat - **ONE_SHOT**: Shipilev openjdk-jdk-loom b549 (2026-03-20) - **ET**: Custom Loom build with EPOLL ET patch ### Tail latency (median across 8 runs) | Percentile | ONE_SHOT | ET | Improvement | |------------|----------|-----|-------------| | p50 | 35.3ms | 32.7ms | -7% | | p75 | 55.6ms | 42.1ms | -24% | | p90 | 96.5ms | 63.4ms | **-34%** | | p99 | 342ms | 138ms | **-60%** | | p99.9 | 443ms | 217ms | **-51%** | ### CPU usage at equal throughput (perf stat, median of 8 runs) | Metric | ONE_SHOT | ET | Delta | |--------|----------|-----|-------| | CPUs utilized | 1.62 | 1.58 | -2.6% | ------------- PR Comment: https://git.openjdk.org/loom/pull/223#issuecomment-4143539100
