Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Add a bench for H3 streams #2444

Merged
merged 11 commits into from
Feb 22, 2025
Merged

Conversation

larseggert
Copy link
Collaborator

@larseggert larseggert commented Feb 15, 2025

To see if the hasher changes in #2342 make sense.

Also remove some related redundancies in test-fixture while I'm here.

Copy link

codecov bot commented Feb 15, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.41%. Comparing base (1df2a5a) to head (3a0c564).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2444      +/-   ##
==========================================
+ Coverage   95.39%   95.41%   +0.02%     
==========================================
  Files         115      115              
  Lines       36982    36982              
  Branches    36982    36982              
==========================================
+ Hits        35279    35288       +9     
+ Misses       1697     1686      -11     
- Partials        6        8       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

github-actions bot commented Feb 15, 2025

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to 1df2a5a.

neqo-latest as client

neqo-latest as server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Copy link

github-actions bot commented Feb 15, 2025

Benchmark results

Performance differences relative to 1df2a5a.

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [12.323 µs 12.363 µs 12.408 µs]
       change: [-1.1214% -0.2678% +0.4040%] (p = 0.56 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) low severe
1 (1.00%) low mild
1 (1.00%) high mild
10 (10.00%) high severe

decode 1048576 bytes, mask ff: 💚 Performance has improved.
       time:   [2.8364 ms 2.8459 ms 2.8570 ms]
       change: [-8.1347% -7.7305% -7.2893%] (p = 0.00 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
11 (11.00%) high severe

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [20.838 µs 20.889 µs 20.945 µs]
       change: [-0.7399% -0.2000% +0.2626%] (p = 0.46 > 0.05)

Found 19 outliers among 100 measurements (19.00%)
2 (2.00%) low severe
4 (4.00%) low mild
13 (13.00%) high severe

decode 1048576 bytes, mask 7f: 💚 Performance has improved.
       time:   [4.5412 ms 4.5524 ms 4.5652 ms]
       change: [-13.113% -12.813% -12.516%] (p = 0.00 < 0.05)

Found 13 outliers among 100 measurements (13.00%)
13 (13.00%) high severe

decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [8.2538 µs 8.2759 µs 8.3058 µs]
       change: [-0.5772% -0.1238% +0.3226%] (p = 0.60 > 0.05)

Found 16 outliers among 100 measurements (16.00%)
1 (1.00%) low severe
4 (4.00%) low mild
4 (4.00%) high mild
7 (7.00%) high severe

decode 1048576 bytes, mask 3f: 💚 Performance has improved.
       time:   [1.5885 ms 1.5941 ms 1.6010 ms]
       change: [-9.6661% -9.3475% -8.9530%] (p = 0.00 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) high mild
7 (7.00%) high severe

1 streams of 1 bytes/multistream:
       time:   [66.498 µs 66.655 µs 66.818 µs]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
1000 streams of 1 bytes/multistream:
       time:   [24.304 ms 24.378 ms 24.492 ms]
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe
10000 streams of 1 bytes/multistream:
       time:   [1.6554 s 1.6568 s 1.6582 s]
Found 10 outliers among 100 measurements (10.00%)
  4 (4.00%) low mild
  3 (3.00%) high mild
  3 (3.00%) high severe
1 streams of 1000 bytes/multistream:
       time:   [68.011 µs 68.630 µs 69.656 µs]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high severe
100 streams of 1000 bytes/multistream:
       time:   [3.2353 ms 3.2416 ms 3.2483 ms]
Found 19 outliers among 100 measurements (19.00%)
  19 (19.00%) high severe
1000 streams of 1000 bytes/multistream:
       time:   [143.70 ms 143.86 ms 144.08 ms]
Found 2 outliers among 100 measurements (2.00%)
  1 (1.00%) high mild
  1 (1.00%) high severe
coalesce_acked_from_zero 1+1 entries: Change within noise threshold.
       time:   [89.814 ns 90.091 ns 90.378 ns]
       change: [-1.7045% -1.2607% -0.8230%] (p = 0.00 < 0.05)

Found 9 outliers among 100 measurements (9.00%)
6 (6.00%) high mild
3 (3.00%) high severe

coalesce_acked_from_zero 3+1 entries: 💚 Performance has improved.
       time:   [107.14 ns 107.38 ns 107.65 ns]
       change: [-3.4252% -2.7453% -2.2138%] (p = 0.00 < 0.05)

Found 15 outliers among 100 measurements (15.00%)
3 (3.00%) low mild
6 (6.00%) high mild
6 (6.00%) high severe

coalesce_acked_from_zero 10+1 entries: 💚 Performance has improved.
       time:   [106.86 ns 107.33 ns 107.87 ns]
       change: [-3.4218% -2.6452% -2.0097%] (p = 0.00 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
2 (2.00%) low severe
2 (2.00%) low mild
1 (1.00%) high mild
6 (6.00%) high severe

coalesce_acked_from_zero 1000+1 entries: 💚 Performance has improved.
       time:   [89.045 ns 89.138 ns 89.249 ns]
       change: [-6.4726% -5.2615% -4.2218%] (p = 0.00 < 0.05)

Found 13 outliers among 100 measurements (13.00%)
7 (7.00%) high mild
6 (6.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [112.71 ms 112.85 ms 113.07 ms]
       change: [+0.3578% +0.4965% +0.6923%] (p = 0.00 < 0.05)

Found 15 outliers among 100 measurements (15.00%)
8 (8.00%) low mild
6 (6.00%) high mild
1 (1.00%) high severe

SentPackets::take_ranges: No change in performance detected.
       time:   [5.1533 µs 5.2306 µs 5.3053 µs]
       change: [-4.5830% -1.7948% +0.8487%] (p = 0.20 > 0.05)

Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe

transfer/pacing-false/varying-seeds: Change within noise threshold.
       time:   [34.095 ms 34.160 ms 34.232 ms]
       change: [-0.6088% -0.3366% -0.0437%] (p = 0.02 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high severe

transfer/pacing-true/varying-seeds: Change within noise threshold.
       time:   [33.949 ms 34.010 ms 34.074 ms]
       change: [-1.5808% -1.3434% -1.0951%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

transfer/pacing-false/same-seed: Change within noise threshold.
       time:   [33.996 ms 34.052 ms 34.113 ms]
       change: [-2.2398% -1.9537% -1.6959%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe

transfer/pacing-true/same-seed: Change within noise threshold.
       time:   [34.339 ms 34.408 ms 34.477 ms]
       change: [-1.6743% -1.3822% -1.1021%] (p = 0.00 < 0.05)
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [864.63 ms 875.41 ms 886.49 ms]
       thrpt:  [112.81 MiB/s 114.23 MiB/s 115.66 MiB/s]
change:
       time:   [-0.6219% +1.2435% +3.1174%] (p = 0.19 > 0.05)
       thrpt:  [-3.0231% -1.2283% +0.6258%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: 💚 Performance has improved.
       time:   [312.27 ms 315.53 ms 318.86 ms]
       thrpt:  [31.362 Kelem/s 31.693 Kelem/s 32.023 Kelem/s]
change:
       time:   [-4.1932% -2.7389% -1.3161%] (p = 0.00 < 0.05)
       thrpt:  [+1.3336% +2.8161% +4.3767%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [25.334 ms 25.500 ms 25.670 ms]
       thrpt:  [38.956  elem/s 39.216  elem/s 39.473  elem/s]
change:
       time:   [-0.8876% -0.0415% +0.8907%] (p = 0.93 > 0.05)
       thrpt:  [-0.8829% +0.0415% +0.8955%]

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: 💚 Performance has improved.
       time:   [1.8118 s 1.8296 s 1.8479 s]
       thrpt:  [54.115 MiB/s 54.656 MiB/s 55.195 MiB/s]
change:
       time:   [-3.8930% -2.5789% -1.2628%] (p = 0.00 < 0.05)
       thrpt:  [+1.2790% +2.6471% +4.0506%]

Client/server transfer results

Performance differences relative to 1df2a5a.

Transfer of 33554432 bytes over loopback, 30 runs. All unit-less numbers are in milliseconds.

Client Server CC Pacing Mean ± σ Min Max Δ main Δ main
neqo neqo reno on 481.3 ± 53.6 430.7 631.5 💚 -31.1 -1.6%
neqo neqo reno 479.4 ± 91.5 407.2 938.8 -20.8 -1.1%
neqo neqo cubic on 498.4 ± 39.9 442.6 627.3 💚 -22.1 -1.1%
neqo neqo cubic 483.4 ± 42.4 427.7 585.4 💚 -37.9 -1.9%
google neqo reno on 877.5 ± 91.9 641.7 1020.1 -4.5 -0.1%
google neqo reno 876.3 ± 102.4 635.1 1090.1 -4.9 -0.1%
google neqo cubic on 878.4 ± 108.1 642.3 1164.8 -0.5 -0.0%
google neqo cubic 868.8 ± 94.6 639.9 962.4 -14.3 -0.4%
google google 542.8 ± 12.5 528.7 582.3 4.7 0.2%
neqo msquic reno on 214.1 ± 11.3 194.1 243.0 -6.9 -0.8%
neqo msquic reno 221.3 ± 35.9 195.0 396.0 2.7 0.3%
neqo msquic cubic on 214.0 ± 11.4 195.4 242.0 -2.0 -0.2%
neqo msquic cubic 217.4 ± 13.4 195.0 242.2 -1.7 -0.2%
msquic msquic 118.9 ± 23.3 96.5 204.0 5.6 1.2%

⬇️ Download logs

@larseggert larseggert marked this pull request as ready for review February 18, 2025 17:43
larseggert and others added 2 commits February 22, 2025 04:04
Co-authored-by: Max Inden <mail@max-inden.de>
Signed-off-by: Lars Eggert <lars@eggert.org>
@larseggert larseggert enabled auto-merge February 22, 2025 02:10
@larseggert larseggert added this pull request to the merge queue Feb 22, 2025
Merged via the queue into mozilla:main with commit 8821278 Feb 22, 2025
69 of 72 checks passed
@larseggert larseggert deleted the test-streams-bench branch February 22, 2025 19:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants