Skip to content

Latest commit

 

History

History
392 lines (327 loc) · 28.5 KB

File metadata and controls

392 lines (327 loc) · 28.5 KB

Windows Benchmark Results

Generated: 2026-04-19 16:05:05 UTC

Machine: win11 (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.
  • Most max-tier rows use 10s samples by default.
  • np-pipeline-batch-d16 @ max uses 20s samples by default because the 10s window was not stable enough on win11.
  • Throughput publication is strict on the full raw repeated sample set for max-tier rows and attainable fixed-rate rows.
  • Every repeated row must keep raw max/min <= 1.35; one lucky or unlucky extreme is no longer publishable.
  • With 5 samples, the runner still computes the trimmed stable core for diagnostics.
  • 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

Named Pipe Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 73.5k 13.600 42.200 82.200 48.500% 94.062% 142.562%
c go 68.3k 13.100 52.800 88.900 44.800% 92.812% 137.300%
c rust 75.9k 13.300 44.300 80.400 48.500% 95.000% 143.469%
go c 65.4k 13.700 58.600 96.600 51.400% 92.656% 143.744%
go go 61.0k 14.000 61.400 114.600 48.800% 92.656% 140.356%
go rust 65.3k 13.700 61.100 99.000 49.700% 93.750% 143.931%
rust c 77.1k 13.300 38.200 79.100 49.800% 92.812% 142.300%
rust go 73.2k 12.800 48.500 81.900 44.600% 93.594% 138.162%
rust rust 78.9k 13.200 37.800 77.500 49.700% 95.156% 144.631%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 56.1k 13.300 44.000 81.800 59.800% 92.188% 151.675%
c go 46.7k 14.500 59.300 107.500 56.100% 92.500% 148.912%
c rust 54.9k 13.300 43.500 84.600 58.300% 94.062% 152.362%
go c 64.8k 13.600 58.700 94.600 51.000% 92.188% 141.625%
go go 63.1k 13.800 61.600 109.400 51.100% 92.188% 143.912%
go rust 59.1k 14.000 66.900 110.400 49.400% 94.688% 144.088%
rust c 56.4k 13.200 43.200 80.000 59.800% 93.125% 152.612%
rust go 51.1k 13.400 55.700 96.000 54.500% 91.562% 145.075%
rust rust 51.7k 13.900 49.700 94.800 62.600% 94.062% 156.662%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 10.0k 14.900 64.500 117.300 88.600% 94.062% 183.288%
c go 10.0k 16.300 107.900 216.100 76.600% 90.938% 168.162%
c rust 10.0k 14.400 58.900 103.100 91.400% 95.312% 185.538%
go c 10.0k 21.000 241.400 474.900 37.800% 50.625% 87.175%
go go 10.0k 17.300 99.100 237.100 82.200% 91.562% 173.762%
go rust 10.0k 22.200 250.100 1268.300 65.100% 75.938% 139.838%
rust c 10.0k 14.800 59.900 110.200 86.500% 94.062% 178.775%
rust go 10.0k 15.300 72.500 120.600 87.600% 93.125% 179.525%
rust rust 10.0k 14.800 67.000 99.400 88.800% 95.625% 184.425%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 997 28.600 13106.600 14044.200 7.200% 8.125% 15.325%
c go 1.0k 93.700 1562.000 1810.300 56.400% 49.688% 107.575%
c rust 1.0k 76.700 1600.400 1702.700 44.700% 38.750% 83.375%
go c 998 25.500 326.200 13394.000 9.700% 8.438% 18.100%
go go 1.0k 113.500 1654.100 1778.100 58.800% 52.188% 110.988%
go rust 1.0k 130.100 1612.500 1742.300 55.700% 39.375% 96.950%
rust c 997 28.000 275.400 14166.000 7.200% 9.062% 16.262%
rust go 1.0k 113.000 1551.200 1754.600 54.200% 48.125% 103.175%
rust rust 1.0k 62.500 1614.500 1745.300 44.100% 33.750% 76.962%

Win SHM Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 2.74M 3.700 9.700 16.000 96.600% 96.406% 193.319%
c go 2.73M 3.700 9.800 16.100 95.200% 96.719% 191.762%
c rust 2.77M 3.700 10.300 16.500 96.100% 96.094% 192.194%
go c 2.27M 3.800 9.500 16.000 97.100% 95.000% 192.100%
go go 2.19M 3.900 10.700 17.400 95.500% 95.469% 190.969%
go rust 2.39M 3.800 10.000 16.500 96.500% 94.219% 191.650%
rust c 2.73M 3.700 9.700 15.800 96.800% 96.250% 192.438%
rust go 2.64M 3.800 9.700 16.000 95.100% 96.719% 191.819%
rust rust 2.74M 3.800 9.200 16.000 96.300% 96.250% 192.706%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 100.0k 3.700 12.200 35.500 96.900% 96.250% 193.950%
c go 100.0k 3.600 8.900 31.900 96.400% 97.500% 193.788%
c rust 100.0k 3.700 10.300 36.800 96.900% 95.000% 192.600%
go c 100.1k 4.000 15.500 98.500 92.200% 13.438% 104.538%
go go 100.1k 4.000 15.400 96.800 93.300% 21.875% 115.175%
go rust 100.1k 4.000 15.200 96.400 93.000% 16.562% 108.975%
rust c 100.1k 3.700 12.800 32.700 96.300% 95.938% 192.325%
rust go 100.0k 3.700 9.300 33.500 96.900% 97.188% 193.775%
rust rust 100.0k 3.700 12.200 35.600 97.000% 95.000% 191.900%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 10.0k 22.600 46.700 115.800 95.600% 46.562% 141.788%
c go 10.0k 23.000 61.200 110.700 96.600% 48.750% 145.850%
c rust 10.0k 22.900 57.300 102.300 95.300% 44.688% 140.300%
go c 10.0k 4.200 108.500 237.100 92.500% 11.250% 103.750%
go go 10.0k 4.200 117.700 247.000 91.100% 22.500% 113.950%
go rust 10.0k 4.200 109.100 226.900 92.500% 13.438% 104.238%
rust c 10.0k 22.500 46.500 96.000 96.400% 41.875% 138.275%
rust go 10.0k 24.600 71.100 170.400 94.200% 48.438% 142.638%
rust rust 10.0k 23.100 83.400 120.300 94.900% 44.375% 139.275%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.0k 83.700 235.500 299.900 93.200% 5.938% 98.062%
c go 1.0k 82.600 201.200 293.000 94.100% 12.500% 105.350%
c rust 1.0k 95.400 191.300 278.500 91.700% 4.688% 96.875%
go c 1.0k 95.200 236.100 297.300 93.800% 5.312% 97.862%
go go 1.0k 97.500 208.700 300.100 93.600% 14.062% 107.913%
go rust 1.0k 95.000 194.500 240.800 94.400% 5.000% 98.462%
rust c 1.0k 89.700 202.200 284.400 93.200% 5.312% 98.587%
rust go 1.0k 100.200 222.600 276.900 88.700% 15.625% 102.937%
rust rust 1.0k 94.700 246.200 275.200 91.700% 3.438% 95.975%

Named Pipe Batch Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 16.53M 26.600 62.900 95.700 39.100% 93.438% 132.381%
c go 13.11M 38.900 77.500 121.500 31.300% 93.750% 125.944%
c rust 15.51M 36.500 66.500 101.500 36.900% 95.000% 131.900%
go c 14.68M 28.800 74.700 115.000 45.200% 92.656% 138.656%
go go 12.04M 40.300 88.100 150.600 36.400% 92.500% 129.200%
go rust 13.96M 37.800 79.700 121.000 44.900% 95.312% 140.131%
rust c 15.34M 30.100 67.200 103.300 39.300% 92.969% 132.581%
rust go 12.47M 39.300 80.700 151.200 33.000% 93.750% 126.594%
rust rust 15.05M 36.300 66.200 100.000 34.700% 93.906% 128.619%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 14.03M 27.600 66.200 102.400 46.300% 93.125% 140.362%
c go 10.90M 39.600 85.000 146.600 42.000% 92.188% 134.688%
c rust 13.54M 35.200 67.800 99.700 44.500% 93.750% 138.250%
go c 14.76M 28.000 73.300 109.200 44.500% 92.500% 137.938%
go go 11.63M 41.000 91.000 150.900 37.200% 92.188% 128.450%
go rust 13.59M 38.200 78.500 125.800 44.700% 93.750% 138.450%
rust c 13.88M 28.100 64.900 98.800 48.500% 94.062% 143.450%
rust go 11.50M 38.800 76.800 117.100 40.700% 92.500% 133.288%
rust rust 13.24M 36.300 70.200 98.600 46.600% 95.000% 140.438%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 5.04M 32.800 72.700 115.700 73.100% 93.438% 166.538%
c go 5.04M 40.400 86.700 168.000 67.600% 92.188% 159.475%
c rust 5.04M 37.700 70.300 109.400 79.700% 96.562% 175.950%
go c 5.01M 41.100 111.200 313.800 52.300% 71.875% 122.612%
go go 5.01M 43.200 99.300 188.600 70.200% 91.875% 162.700%
go rust 5.01M 41.300 102.800 280.000 70.200% 90.000% 161.138%
rust c 5.04M 36.700 77.600 112.300 72.000% 94.062% 167.050%
rust go 5.04M 40.600 85.400 145.500 72.000% 94.375% 162.312%
rust rust 5.04M 37.900 72.600 106.600 75.700% 94.375% 169.125%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 503.8k 61.600 435.200 13436.200 10.300% 12.500% 22.800%
c go 505.2k 102.400 1448.700 1725.400 51.900% 50.313% 103.850%
c rust 505.2k 91.600 1510.000 1808.100 43.500% 33.438% 76.900%
go c 500.4k 72.200 10190.400 14103.000 12.800% 12.500% 26.000%
go go 499.6k 128.800 1319.900 1513.200 58.900% 46.562% 105.462%
go rust 498.8k 158.000 1512.400 1687.600 54.500% 36.250% 89.500%
rust c 503.9k 57.900 10239.100 13631.700 8.800% 9.688% 17.862%
rust go 505.1k 99.700 1535.700 1683.300 54.700% 46.562% 101.413%
rust rust 505.1k 102.900 1580.700 1628.700 38.800% 32.812% 71.612%

Win SHM Batch Ping-Pong

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 61.13M 10.500 18.800 62.700 95.400% 95.000% 191.238%
c go 48.17M 12.500 23.900 72.900 95.700% 97.344% 193.144%
c rust 53.62M 11.500 27.000 71.300 94.400% 94.844% 189.544%
go c 50.34M 11.200 24.000 88.800 95.400% 92.188% 186.650%
go go 39.97M 13.600 29.100 95.400 95.100% 95.156% 190.906%
go rust 46.29M 11.800 27.600 96.700 95.300% 93.594% 188.425%
rust c 57.17M 10.400 19.000 59.300 96.100% 96.406% 191.812%
rust go 43.32M 12.900 27.000 79.200 94.200% 96.406% 191.075%
rust rust 51.39M 11.400 21.800 69.700 95.300% 95.156% 190.456%

100000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 37.73M 10.300 20.000 74.000 95.000% 94.375% 189.688%
c go 32.36M 12.400 25.800 80.700 95.000% 95.625% 190.712%
c rust 36.87M 10.700 22.400 71.900 94.500% 95.312% 189.812%
go c 50.09M 11.000 22.800 73.400 96.000% 91.875% 186.025%
go go 39.50M 13.700 29.400 95.300 94.800% 94.375% 189.175%
go rust 50.12M 11.200 21.200 78.100 95.700% 92.500% 189.450%
rust c 35.65M 10.200 22.500 68.700 96.100% 95.625% 192.038%
rust go 32.10M 12.100 23.600 74.700 96.000% 96.875% 192.075%
rust rust 34.64M 10.700 21.200 70.300 95.900% 95.000% 191.438%

10000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 5.04M 30.000 95.900 176.500 95.200% 47.188% 142.388%
c go 5.04M 32.600 99.900 185.500 93.400% 58.125% 152.150%
c rust 5.04M 32.000 116.900 190.900 90.500% 49.062% 139.562%
go c 5.01M 14.000 124.600 286.000 91.700% 18.438% 112.900%
go go 5.02M 17.100 135.100 291.400 89.300% 31.562% 120.862%
go rust 5.03M 19.700 142.500 275.200 88.600% 27.812% 113.350%
rust c 5.04M 30.200 92.000 145.800 93.900% 47.500% 140.938%
rust go 5.04M 31.600 88.400 161.800 94.600% 57.812% 150.750%
rust rust 5.04M 31.900 90.100 133.700 96.100% 48.438% 144.712%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 505.3k 103.800 190.300 376.800 92.300% 6.562% 98.050%
c go 505.3k 110.900 285.300 376.300 90.100% 14.688% 104.388%
c rust 505.2k 103.000 199.700 367.300 92.300% 8.750% 97.150%
go c 502.4k 91.300 245.900 305.900 93.800% 6.250% 100.038%
go go 504.0k 60.600 193.000 258.200 94.300% 11.875% 108.175%
go rust 505.2k 49.600 176.200 290.800 95.300% 5.312% 100.700%
rust c 505.3k 63.400 193.900 375.600 92.400% 5.938% 98.538%
rust go 505.4k 105.900 268.400 382.400 91.200% 14.062% 105.262%
rust rust 505.4k 43.400 235.500 320.400 92.900% 4.688% 99.462%

Snapshot Named Pipe Refresh

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 77.5k 13.100 37.300 74.300 49.200% 93.750% 142.950%
c go 69.8k 13.300 51.200 86.700 45.100% 92.344% 137.869%
c rust 77.2k 13.200 38.200 78.200 48.800% 94.375% 143.369%
go c 60.5k 13.900 63.700 110.100 47.800% 90.156% 140.219%
go go 62.0k 14.200 62.700 103.400 51.000% 92.969% 143.031%
go rust 66.4k 13.800 59.400 95.100 52.400% 94.531% 147.169%
rust c 77.3k 13.100 39.900 73.400 50.200% 94.219% 143.469%
rust go 68.1k 13.500 53.100 89.100 45.100% 93.594% 138.275%
rust rust 75.1k 13.400 42.900 77.000 49.400% 94.531% 143.775%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 998 47.800 282.000 13617.100 9.700% 9.062% 20.262%
c go 1.0k 119.600 1505.700 1644.500 50.100% 39.375% 90.100%
c rust 1.0k 68.300 1576.500 1700.100 44.800% 34.375% 76.238%
go c 998 53.300 12426.000 14243.900 8.100% 8.438% 16.538%
go go 1.0k 114.600 1240.000 1453.200 50.100% 39.062% 89.975%
go rust 1.0k 124.400 1584.500 1616.300 52.600% 34.375% 86.988%
rust c 997 50.700 12849.900 14224.100 9.700% 7.812% 17.512%
rust go 1.0k 78.100 1503.800 1616.000 49.800% 41.875% 92.575%
rust rust 1.0k 78.100 1583.700 1792.500 45.000% 34.062% 82.862%

Snapshot Win SHM Refresh

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.23M 4.200 9.200 15.900 96.500% 96.875% 193.575%
c go 1.18M 4.100 9.500 16.800 95.200% 97.344% 192.544%
c rust 1.35M 4.100 8.800 16.500 96.600% 96.406% 193.406%
go c 945.0k 4.500 16.800 27.200 93.500% 91.875% 185.375%
go go 984.4k 4.400 12.800 20.700 95.200% 96.094% 191.294%
go rust 1.14M 4.300 9.900 17.500 97.400% 95.781% 193.119%
rust c 1.23M 4.200 8.900 16.300 96.400% 96.406% 193.306%
rust go 1.15M 4.200 11.600 18.200 94.700% 96.094% 191.575%
rust rust 1.34M 4.100 10.300 16.800 96.400% 96.562% 192.962%

1000 req/s target

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 1.0k 103.200 351.400 416.700 89.500% 4.688% 93.875%
c go 1.0k 64.000 206.300 281.800 93.800% 12.188% 103.912%
c rust 1.0k 54.600 194.600 313.900 92.500% 6.875% 101.788%
go c 1.0k 97.800 250.500 294.700 95.000% 4.375% 100.075%
go go 1.0k 68.300 272.600 348.000 94.800% 12.812% 107.612%
go rust 1.0k 46.400 205.500 284.100 96.200% 4.375% 100.238%
rust c 1.0k 95.200 255.700 303.300 92.700% 7.812% 98.038%
rust go 1.0k 87.100 173.900 284.100 92.000% 13.438% 105.575%
rust rust 1.0k 94.800 221.100 270.600 88.000% 6.562% 94.812%

Named Pipe Pipeline

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 262.1k 55.700 107.100 158.000 60.800% 93.750% 154.750%
c go 202.9k 69.800 139.200 210.800 54.000% 92.344% 146.188%
c rust 264.9k 54.900 103.900 150.700 63.200% 95.312% 158.512%
go c 235.2k 58.300 119.300 180.900 64.900% 92.500% 156.775%
go go 215.0k 67.200 129.700 187.400 64.100% 93.281% 156.912%
go rust 229.7k 60.400 130.500 241.800 66.000% 95.000% 161.000%
rust c 258.8k 56.200 106.700 153.000 62.300% 94.531% 157.769%
rust go 203.3k 69.900 139.200 220.400 53.800% 92.656% 146.069%
rust rust 269.7k 54.400 100.700 142.100 61.400% 95.781% 156.781%

Named Pipe Pipeline+Batch

Max throughput

Client Server Throughput p50 (us) p95 (us) p99 (us) Client CPU Server CPU Total CPU
c c 49.35M 152.500 240.700 377.500 66.300% 95.000% 160.675%
c go 34.46M 221.300 330.600 448.000 51.600% 93.906% 145.272%
c rust 44.60M 170.000 261.100 401.500 62.800% 96.172% 159.272%
go c 43.99M 161.200 293.600 602.900 71.400% 93.203% 164.212%
go go 34.77M 217.300 339.600 432.400 60.500% 94.219% 153.938%
go rust 43.10M 174.100 268.600 434.000 72.100% 95.312% 168.044%
rust c 49.41M 153.200 238.900 363.500 69.100% 95.234% 163.553%
rust go 32.74M 228.400 378.600 851.800 54.500% 93.828% 148.562%
rust rust 44.59M 171.500 256.600 367.100 64.100% 96.484% 160.819%

Local Cache Lookup

Language Throughput Client CPU Total CPU
c 132.51M 97.800% 97.800%
go 103.04M 97.900% 97.900%
rust 185.01M 97.700% 97.700%

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