Skip to content

Latest commit

 

History

History
397 lines (330 loc) · 29 KB

File metadata and controls

397 lines (330 loc) · 29 KB

Windows Benchmark Results

Generated: 2026-06-15 18:15:35 UTC

Machine: local Windows benchmark host (x86_64)

CSV: benchmarks-windows.csv

Complete matrix rows expected: 201

Methodology

  • The current Windows runner publishes one CSV row per matrix cell after aggregating repeated measurements.
  • Current runner defaults: 5 samples per cell.
  • Fixed-rate rows use 5s samples by default.
  • Max-tier rows use 20s samples by default.
  • np-pipeline-batch-d16 @ max uses 20s samples by default.
  • Throughput publication uses the median of repeated samples after stability checks.
  • The stable core must contain at least 3 samples and keep max/min <= 1.35.
  • Current trimmed raw-outlier publication default: 1; with 5 samples this permits one low and one high scheduler outlier when the trimmed stable core remains publishable.
  • Raw outliers are still reported by the runner with the per-repeat sample file path.
  • Oversubscribed fixed-rate rows are the one exception: when the requested target is above the same pair's already-measured @ max capacity, the row may still publish if the trimmed stable core contains at least 3 samples and stays within max/min <= 1.35.
  • This keeps the Windows 100000/s saturation-style rows visible without pretending they are attainable fixed-rate commitments.
  • The script CLI duration still controls the fixed-rate rows; NIPC_BENCH_MAX_DURATION controls most max-tier rows; NIPC_BENCH_PIPELINE_BATCH_MAX_DURATION controls np-pipeline-batch-d16 @ max.

Validation Summary

Scenario Target RPS Expected Rows Actual Rows
np-ping-pong 0 9 9
np-ping-pong 100000 9 9
np-ping-pong 10000 9 9
np-ping-pong 1000 9 9
shm-ping-pong 0 9 9
shm-ping-pong 100000 9 9
shm-ping-pong 10000 9 9
shm-ping-pong 1000 9 9
np-batch-ping-pong 0 9 9
np-batch-ping-pong 100000 9 9
np-batch-ping-pong 10000 9 9
np-batch-ping-pong 1000 9 9
shm-batch-ping-pong 0 9 9
shm-batch-ping-pong 100000 9 9
shm-batch-ping-pong 10000 9 9
shm-batch-ping-pong 1000 9 9
snapshot-baseline 0 9 9
snapshot-baseline 1000 9 9
snapshot-shm 0 9 9
snapshot-shm 1000 9 9
lookup 0 3 3
np-pipeline-d16 0 9 9
np-pipeline-batch-d16 0 9 9

Benchmark Notes

  • 2026-06-15: snapshot-baseline,rust,c,0 used a targeted rerun after the full Windows matrix failed the stability policy twice for that row. The two failed attempts showed warm-up ramp ratios of 2.572475 and 1.689472 against the 1.35 limit. The published row uses the validated targeted rerun at 71467 req/s with p50=14.600us, p95=29.500us, p99=74.200us, and stable ratio 1.006983.

Named Pipe Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 65.3k 14.400 56.100 101.100 46.300% 93.203% 139.750%
c go 57.0k 14.500 63.700 126.900 42.100% 90.703% 133.250%
c rust 59.6k 14.800 60.500 119.400 46.600% 92.969% 139.647%
go c 50.5k 15.000 72.900 140.800 48.900% 87.969% 136.369%
go go 54.0k 14.900 72.400 150.800 49.200% 90.859% 139.859%
go rust 52.9k 15.000 72.800 137.800 51.100% 91.172% 142.366%
rust c 64.8k 14.400 55.200 102.200 47.700% 93.125% 140.825%
rust go 49.4k 15.300 74.400 167.200 40.600% 90.547% 131.303%
rust rust 57.9k 14.900 60.800 124.500 46.700% 92.031% 138.028%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 47.8k 14.300 60.000 116.300 58.600% 93.438% 152.038%
c go 34.4k 17.100 88.600 177.000 46.200% 88.750% 136.200%
c rust 44.3k 14.400 64.600 131.400 55.300% 92.812% 148.112%
go c 55.1k 14.600 70.800 128.100 50.700% 88.750% 139.450%
go go 52.2k 15.200 75.800 161.100 48.500% 91.875% 140.375%
go rust 43.5k 16.000 89.400 265.600 50.100% 90.312% 140.412%
rust c 41.9k 14.600 64.800 139.200 57.000% 91.562% 149.762%
rust go 40.8k 14.800 72.800 149.500 51.600% 90.625% 142.850%
rust rust 42.9k 15.000 65.200 131.300 56.700% 93.438% 149.675%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 10.0k 17.300 74.800 150.100 86.700% 94.375% 179.488%
c go 10.0k 18.500 113.800 216.500 73.800% 90.000% 165.212%
c rust 10.0k 17.400 88.800 189.500 79.400% 93.438% 175.338%
go c 10.0k 22.000 174.800 479.300 41.800% 57.188% 99.925%
go go 10.0k 22.900 160.100 312.300 80.300% 89.062% 170.262%
go rust 10.0k 21.100 185.400 1302.400 65.200% 75.000% 140.200%
rust c 10.0k 16.200 77.800 181.400 77.900% 92.188% 170.088%
rust go 10.0k 16.800 85.500 178.200 83.000% 92.500% 175.500%
rust rust 10.0k 16.100 76.800 151.100 85.100% 92.188% 178.225%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 998 31.100 13236.000 14102.900 10.300% 13.125% 23.425%
c go 1.0k 78.400 1515.000 1803.800 60.900% 59.062% 119.400%
c rust 1.0k 79.600 1782.600 1931.700 46.600% 40.312% 86.912%
go c 998 28.500 527.700 13360.600 11.000% 13.438% 24.338%
go go 1.0k 150.000 1319.200 1615.400 54.700% 45.938% 100.138%
go rust 1.0k 132.000 1694.900 1917.600 57.000% 40.625% 97.625%
rust c 998 37.800 288.400 13438.200 11.200% 12.812% 23.112%
rust go 1.0k 84.500 1505.200 1753.500 57.900% 50.000% 108.788%
rust rust 1.0k 68.300 1653.800 2058.400 46.700% 42.500% 89.200%

Win SHM Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 2.48M 4.000 14.500 20.600 93.900% 93.594% 187.394%
c go 2.18M 4.000 15.300 22.800 92.400% 94.453% 186.453%
c rust 2.45M 4.000 15.000 21.100 93.500% 93.203% 186.547%
go c 2.05M 4.100 15.500 22.800 93.700% 91.016% 185.216%
go go 1.34M 4.500 17.700 43.800 86.300% 86.016% 172.316%
go rust 2.02M 4.200 15.600 24.700 93.700% 91.719% 185.509%
rust c 2.44M 4.000 15.100 20.000 94.300% 94.609% 188.709%
rust go 1.72M 4.300 16.700 33.500 85.800% 89.766% 174.862%
rust rust 2.19M 4.100 15.600 23.700 92.100% 91.797% 183.897%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 100.0k 4.100 17.800 92.800 90.500% 89.375% 180.950%
c go 100.0k 4.000 15.200 61.800 92.500% 95.000% 187.088%
c rust 100.0k 4.000 15.900 64.400 93.100% 91.250% 184.850%
go c 100.0k 4.400 20.900 150.200 89.000% 18.125% 107.125%
go go 100.0k 4.400 19.300 191.300 87.000% 30.625% 116.725%
go rust 100.1k 4.500 25.100 169.000 86.400% 18.125% 105.825%
rust c 100.0k 4.000 16.200 66.400 93.600% 92.188% 185.988%
rust go 100.0k 4.000 15.400 80.900 93.500% 94.062% 187.562%
rust rust 100.0k 4.200 19.300 98.400 91.300% 86.875% 178.175%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 10.0k 26.400 78.500 151.500 93.600% 43.125% 136.512%
c go 10.0k 29.400 116.700 230.000 85.200% 50.625% 135.825%
c rust 10.0k 29.800 112.200 202.100 89.300% 48.438% 136.912%
go c 10.0k 9.000 233.900 372.000 82.300% 14.688% 100.525%
go go 10.0k 5.900 214.600 377.900 87.000% 24.062% 109.800%
go rust 10.0k 7.800 235.800 413.900 84.100% 15.937% 99.413%
rust c 10.0k 28.800 102.700 187.600 91.000% 44.375% 135.375%
rust go 10.0k 30.000 161.200 279.600 84.000% 49.688% 140.088%
rust rust 10.0k 28.000 112.600 200.300 89.900% 44.062% 136.088%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.0k 102.100 204.800 318.200 90.700% 5.312% 96.638%
c go 1.0k 102.000 214.300 243.500 90.000% 15.313% 105.100%
c rust 1.0k 109.200 278.800 386.500 87.800% 6.250% 92.850%
go c 1.0k 104.400 274.100 375.000 92.000% 6.562% 97.875%
go go 1.0k 124.400 405.500 639.200 88.900% 15.625% 106.088%
go rust 1.0k 101.400 234.600 321.700 91.800% 5.625% 97.662%
rust c 1.0k 99.700 248.700 330.000 91.900% 5.625% 95.962%
rust go 1.0k 103.800 322.800 405.800 87.100% 17.500% 104.225%
rust rust 1.0k 116.200 296.400 392.100 90.700% 5.312% 95.350%

Named Pipe Batch Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 8.40M 52.800 165.700 305.300 37.600% 86.406% 125.256%
c go 9.78M 45.600 114.200 223.100 31.800% 90.625% 121.528%
c rust 11.06M 42.300 107.200 208.300 36.600% 91.562% 128.788%
go c 8.11M 46.400 151.500 332.200 41.300% 84.375% 125.675%
go go 7.65M 52.400 200.300 381.900 41.500% 90.547% 132.047%
go rust 9.12M 43.800 138.200 326.600 42.900% 90.703% 133.962%
rust c 11.20M 41.300 105.300 197.100 39.200% 92.031% 130.978%
rust go 10.10M 45.000 106.100 188.200 31.800% 90.781% 122.581%
rust rust 10.57M 42.600 108.600 203.800 37.500% 92.109% 129.709%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 9.60M 42.600 113.800 233.000 46.600% 90.938% 137.288%
c go 7.33M 52.900 150.400 268.000 37.000% 88.438% 123.775%
c rust 6.76M 57.700 181.900 340.600 41.900% 90.938% 132.838%
go c 10.69M 38.400 115.900 250.700 44.200% 87.812% 132.012%
go go 7.48M 51.400 174.900 301.600 40.400% 87.500% 128.200%
go rust 7.99M 47.300 171.700 369.400 42.300% 87.500% 127.612%
rust c 8.90M 43.000 113.600 241.300 43.400% 90.000% 132.775%
rust go 8.26M 47.500 118.500 267.800 40.000% 88.438% 129.100%
rust rust 8.03M 46.400 132.800 291.300 39.400% 89.688% 132.212%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 5.04M 45.200 112.300 222.500 67.400% 91.562% 158.962%
c go 5.04M 51.700 128.200 254.700 58.300% 89.688% 149.538%
c rust 5.04M 46.300 120.500 237.000 67.600% 93.438% 160.725%
go c 5.04M 45.500 145.200 287.100 53.800% 73.750% 128.450%
go go 5.04M 54.400 192.200 295.200 60.800% 88.438% 148.300%
go rust 5.04M 50.600 171.200 369.400 60.200% 88.750% 149.375%
rust c 5.04M 42.100 103.700 213.400 68.600% 92.500% 161.725%
rust go 5.04M 54.400 167.200 276.000 58.200% 91.250% 149.662%
rust rust 5.04M 43.800 103.800 216.500 67.600% 93.438% 161.350%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 503.9k 73.100 392.700 13301.300 14.400% 16.250% 29.400%
c go 505.2k 141.700 1474.400 1567.400 50.800% 44.062% 94.862%
c rust 505.1k 145.600 1631.900 1844.200 42.500% 36.875% 83.125%
go c 504.0k 107.100 10387.500 13396.000 14.400% 18.438% 32.850%
go go 505.3k 126.300 1306.500 1573.800 57.600% 50.000% 106.000%
go rust 505.2k 167.100 1628.400 1722.200 52.500% 37.812% 88.412%
rust c 504.0k 69.200 10761.200 13306.000 9.700% 14.688% 24.388%
rust go 505.2k 128.100 1397.400 1535.700 52.800% 46.250% 100.750%
rust rust 505.0k 108.300 1561.700 1786.200 43.300% 36.875% 78.400%

Win SHM Batch Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 60.74M 10.600 20.100 69.800 94.700% 95.234% 189.934%
c go 46.60M 12.900 25.600 81.800 93.800% 95.859% 189.659%
c rust 55.32M 11.300 21.800 75.900 94.500% 94.766% 189.244%
go c 51.59M 10.900 20.900 76.700 95.600% 93.672% 189.772%
go go 38.29M 14.000 31.000 108.300 94.500% 94.375% 188.875%
go rust 47.63M 11.600 21.900 81.000 96.400% 94.141% 190.741%
rust c 55.92M 10.500 20.200 75.600 94.300% 95.234% 189.334%
rust go 41.77M 13.500 28.400 91.800 94.100% 95.625% 189.569%
rust rust 51.59M 11.200 21.400 74.600 95.100% 94.922% 190.022%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 38.34M 10.100 19.300 76.900 95.700% 95.312% 191.325%
c go 29.97M 13.100 29.900 108.300 94.900% 95.312% 190.312%
c rust 35.19M 11.000 23.200 79.600 93.900% 94.062% 188.188%
go c 49.91M 10.900 23.100 86.700 95.600% 94.062% 189.662%
go go 37.99M 13.900 30.100 109.800 95.400% 94.688% 190.738%
go rust 41.81M 12.300 30.500 109.400 94.000% 91.250% 185.638%
rust c 35.59M 10.100 19.500 78.000 95.100% 94.062% 190.350%
rust go 28.28M 12.900 29.900 97.300 93.200% 95.312% 190.075%
rust rust 29.93M 11.500 37.600 95.200 92.600% 91.250% 183.450%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 5.04M 31.300 98.700 178.400 95.000% 46.875% 141.612%
c go 5.04M 33.300 95.700 156.600 94.000% 57.188% 149.688%
c rust 5.04M 31.600 100.100 192.400 91.200% 51.250% 140.512%
go c 5.04M 14.600 139.000 323.300 88.000% 24.375% 112.562%
go go 5.04M 21.000 173.600 329.200 85.900% 34.375% 120.275%
go rust 5.04M 16.400 141.700 270.300 89.700% 27.500% 115.100%
rust c 5.04M 30.800 82.300 130.100 94.400% 47.812% 143.500%
rust go 5.04M 33.700 110.500 185.500 90.800% 57.500% 148.300%
rust rust 5.04M 31.800 87.900 146.000 92.400% 47.188% 140.575%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 505.3k 107.400 283.300 359.000 91.400% 6.562% 95.638%
c go 505.2k 98.700 290.200 400.400 89.100% 16.250% 103.138%
c rust 505.3k 109.600 247.500 368.200 90.400% 5.938% 95.862%
go c 505.4k 110.100 268.500 364.400 91.900% 5.938% 98.775%
go go 505.4k 107.900 222.900 307.500 93.100% 12.812% 106.438%
go rust 505.5k 104.900 236.200 329.900 90.700% 6.875% 97.750%
rust c 505.3k 101.300 212.300 350.100 93.300% 5.625% 98.300%
rust go 505.4k 94.300 223.700 314.200 91.100% 15.313% 105.362%
rust rust 505.3k 82.000 285.700 567.700 88.500% 7.812% 95.512%

Snapshot Named Pipe Refresh

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 99.3k 11.900 40.500 106.000 84.400% 83.906% 168.306%
c go 51.6k 15.900 89.400 234.000 73.300% 70.625% 143.925%
c rust 94.6k 13.500 50.400 157.300 87.600% 83.828% 171.428%
go c 63.2k 12.900 71.000 185.000 75.700% 75.781% 151.481%
go go 70.8k 13.900 84.200 200.200 87.000% 88.359% 175.828%
go rust 75.9k 13.200 71.100 167.500 87.200% 88.750% 176.472%
rust c 71.5k 14.600 29.500 74.200 92.900% 90.859% 183.706%
rust go 40.7k 19.000 91.600 248.800 92.000% 86.016% 178.016%
rust rust 59.0k 15.800 60.600 112.300 94.400% 91.562% 186.466%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 988 18.800 773.700 27756.800 8.400% 6.875% 15.962%
c go 1.0k 30.300 658.400 15222.300 39.400% 39.688% 79.462%
c rust 997 28.100 1272.900 15581.600 9.000% 11.250% 21.550%
go c 991 30.300 14109.800 15291.700 24.700% 10.000% 34.075%
go go 1.0k 98.100 2155.300 2607.900 72.600% 58.438% 131.238%
go rust 1.0k 147.700 2772.300 3360.600 60.300% 38.125% 98.325%
rust c 989 55.400 3888.500 15209.300 20.600% 14.062% 38.762%
rust go 1.0k 62.800 2302.800 2787.600 73.700% 64.688% 139.588%
rust rust 999 65.200 2746.900 3248.400 46.600% 38.438% 83.825%

Snapshot Win SHM Refresh

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.00M 4.700 16.600 30.700 92.600% 92.266% 184.944%
c go 782.7k 5.000 17.400 35.800 87.800% 92.734% 180.534%
c rust 1.05M 4.700 16.800 31.400 93.200% 92.344% 185.544%
go c 818.8k 5.000 17.600 35.300 93.100% 90.000% 183.100%
go go 676.8k 5.300 19.100 44.000 90.700% 91.719% 181.775%
go rust 908.9k 4.800 17.500 31.200 93.700% 90.391% 183.978%
rust c 1.06M 4.700 16.500 28.800 96.800% 93.984% 190.850%
rust go 737.2k 5.400 18.300 51.300 92.700% 92.109% 184.809%
rust rust 1.11M 4.600 16.900 29.600 95.500% 93.516% 189.016%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.0k 113.700 277.800 440.000 89.800% 5.000% 95.900%
c go 1.0k 131.700 394.100 1004.900 81.100% 18.750% 98.638%
c rust 1.0k 115.300 309.800 418.800 88.600% 7.187% 94.725%
go c 1.0k 119.800 294.300 421.800 93.100% 4.688% 97.788%
go go 1.0k 119.500 298.100 387.400 91.900% 14.688% 107.162%
go rust 1.0k 142.200 366.200 912.400 89.600% 7.500% 95.812%
rust c 1.0k 75.100 260.400 355.100 92.600% 5.000% 97.900%
rust go 1.0k 89.900 347.700 903.800 90.800% 15.313% 107.013%
rust rust 1.0k 93.600 425.800 860.000 88.600% 5.000% 93.600%

Named Pipe Pipeline

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 240.9k 58.000 122.600 190.300 60.500% 93.828% 154.484%
c go 178.1k 78.000 164.900 264.600 51.200% 91.641% 142.841%
c rust 249.4k 57.200 118.200 171.100 61.000% 94.609% 154.925%
go c 215.8k 60.400 139.000 246.200 67.500% 90.547% 157.475%
go go 186.7k 73.400 155.000 290.400 63.200% 92.031% 155.031%
go rust 215.3k 61.600 144.600 273.300 68.200% 93.516% 161.950%
rust c 235.0k 58.700 129.900 219.800 60.200% 92.422% 152.622%
rust go 176.8k 77.200 165.200 282.200 49.900% 90.938% 141.206%
rust rust 241.2k 57.900 124.400 195.700 61.100% 93.984% 154.303%

Named Pipe Pipeline+Batch

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 46.66M 158.000 268.300 422.000 67.800% 94.609% 162.209%
c go 30.24M 249.600 398.200 569.500 49.500% 93.516% 142.000%
c rust 42.69M 175.100 289.900 464.400 64.100% 95.234% 158.834%
go c 42.76M 169.300 299.200 596.100 75.500% 92.500% 168.469%
go go 29.87M 242.000 430.500 806.900 61.600% 92.812% 154.091%
go rust 39.27M 181.300 326.100 867.600 72.800% 93.906% 166.238%
rust c 46.04M 159.200 271.200 448.300 68.100% 93.906% 161.538%
rust go 29.68M 251.400 404.200 793.100 50.300% 92.969% 142.956%
rust rust 42.55M 175.300 287.600 460.200 64.500% 94.609% 159.353%

Local Cache Lookup

Language Throughput Client CPU Total CPU
c 121.93M 97.600% 97.600%
go 104.16M 97.700% 97.700%
rust 177.62M 97.800% 97.800%

Performance Floors

Metric Floor Status
Win SHM ping-pong max (C/Rust pairs) >= 1M req/s PASS
Named Pipe ping-pong max > 0 req/s PASS
Local cache lookup >= 10M lookups/s PASS