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

Reply via email to