Skip to content

Conversation

mxinden
Copy link
Member

@mxinden mxinden commented Aug 15, 2025

This list is neither complete, nor in my opinion particularly helpful. Given that I am about to add a couple more functions to Http3Connection with #2796, instead of updating the list, I suggest we remove it.

Copy link

codecov bot commented Aug 15, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.92%. Comparing base (3c7c965) to head (2112614).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2859      +/-   ##
==========================================
- Coverage   94.93%   94.92%   -0.01%     
==========================================
  Files         115      115              
  Lines       34484    34484              
  Branches    34484    34484              
==========================================
- Hits        32736    32734       -2     
  Misses       1741     1741              
- Partials        7        9       +2     
Components Coverage Δ
neqo-common 97.48% <ø> (ø)
neqo-crypto 89.91% <ø> (ø)
neqo-http3 93.73% <ø> (ø)
neqo-qpack 95.45% <ø> (ø)
neqo-transport 95.94% <ø> (-0.02%) ⬇️
neqo-udp 89.85% <ø> (ø)

@larseggert larseggert enabled auto-merge August 15, 2025 13:54
@larseggert larseggert added this pull request to the merge queue Aug 15, 2025
Merged via the queue into mozilla:main with commit a20e4e9 Aug 15, 2025
80 of 81 checks passed
Copy link

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to a4eb5e5.

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

Client/server transfer results

Performance differences relative to 3c7c965.

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

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ main Δ main
google vs. google 451.8 ± 4.7 445.0 472.1 70.8 ± 6.8
google vs. neqo (cubic, paced) 271.9 ± 4.2 265.4 280.1 117.7 ± 7.6 -0.7 -0.3%
msquic vs. msquic 129.0 ± 17.5 109.5 215.2 248.1 ± 1.8
msquic vs. neqo (cubic, paced) 144.8 ± 14.0 122.5 207.1 221.0 ± 2.3 -0.3 -0.2%
neqo vs. google (cubic, paced) 753.9 ± 5.5 731.7 772.0 42.4 ± 5.8 0.8 0.1%
neqo vs. msquic (cubic, paced) 155.5 ± 4.6 148.3 165.4 205.7 ± 7.0 0.1 0.1%
neqo vs. neqo (cubic) 92.3 ± 4.7 84.7 106.4 346.6 ± 6.8 💔 1.6 1.7%
neqo vs. neqo (cubic, paced) 94.1 ± 5.4 83.9 115.7 340.1 ± 5.9 💔 1.6 1.7%
neqo vs. neqo (reno) 93.9 ± 5.1 84.7 111.4 340.8 ± 6.3 💔 1.5 1.7%
neqo vs. neqo (reno, paced) 93.4 ± 5.1 83.8 111.2 342.5 ± 6.3 0.3 0.3%
neqo vs. quiche (cubic, paced) 192.6 ± 3.9 187.0 202.3 166.1 ± 8.2 0.2 0.1%
neqo vs. s2n (cubic, paced) 220.5 ± 4.3 211.1 228.8 145.1 ± 7.4 -0.8 -0.4%
quiche vs. neqo (cubic, paced) 147.4 ± 6.6 137.8 176.8 217.1 ± 4.8 💚 -1.8 -1.2%
quiche vs. quiche 143.2 ± 5.5 135.7 167.5 223.5 ± 5.8
s2n vs. neqo (cubic, paced) 169.9 ± 4.6 161.0 180.0 188.4 ± 7.0 💚 -1.4 -0.8%
s2n vs. s2n 247.3 ± 25.0 231.5 351.2 129.4 ± 1.3

Download data for profiler.firefox.com or download performance comparison data.

Copy link

Benchmark results

Performance differences relative to 3c7c965.

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [202.03 ms 202.53 ms 203.06 ms]
       thrpt:  [492.46 MiB/s 493.76 MiB/s 494.97 MiB/s]
change:
       time:   [−0.3987% −0.0607% +0.2620%] (p = 0.73 > 0.05)
       thrpt:  [−0.2613% +0.0607% +0.4003%]

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

1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [304.69 ms 306.19 ms 307.68 ms]
       thrpt:  [32.501 Kelem/s 32.660 Kelem/s 32.820 Kelem/s]
change:
       time:   [−1.1713% −0.4878% +0.2005%] (p = 0.16 > 0.05)
       thrpt:  [−0.2001% +0.4902% +1.1851%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [28.295 ms 28.445 ms 28.610 ms]
       thrpt:  [34.953   B/s 35.156   B/s 35.341   B/s]
change:
       time:   [−0.4433% +0.2217% +0.9271%] (p = 0.53 > 0.05)
       thrpt:  [−0.9186% −0.2212% +0.4452%]

Found 8 outliers among 100 measurements (8.00%)
8 (8.00%) high severe

1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: 💔 Performance has regressed.
       time:   [209.14 ms 209.39 ms 209.66 ms]
       thrpt:  [476.96 MiB/s 477.57 MiB/s 478.16 MiB/s]
change:
       time:   [+1.0743% +1.3033% +1.5338%] (p = 0.00 < 0.05)
       thrpt:  [−1.5106% −1.2865% −1.0628%]

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

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [11.611 µs 11.645 µs 11.687 µs]
       change: [−0.6938% +0.0277% +0.7348%] (p = 0.95 > 0.05)

Found 16 outliers among 100 measurements (16.00%)
2 (2.00%) low severe
4 (4.00%) low mild
1 (1.00%) high mild
9 (9.00%) high severe

decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [3.0047 ms 3.0140 ms 3.0250 ms]
       change: [−0.5512% −0.0718% +0.3861%] (p = 0.75 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
1 (1.00%) low mild
8 (8.00%) high severe

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [19.384 µs 19.437 µs 19.495 µs]
       change: [−0.3087% +0.1350% +0.5644%] (p = 0.55 > 0.05)

Found 21 outliers among 100 measurements (21.00%)
1 (1.00%) low severe
3 (3.00%) low mild
17 (17.00%) high severe

decode 1048576 bytes, mask 7f: No change in performance detected.
       time:   [5.0834 ms 5.0946 ms 5.1074 ms]
       change: [−0.3120% +0.0143% +0.3321%] (p = 0.92 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) high mild
12 (12.00%) high severe

decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [5.5326 µs 5.5659 µs 5.6038 µs]
       change: [−3.1359% −1.2977% +0.0210%] (p = 0.11 > 0.05)

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

decode 1048576 bytes, mask 3f: Change within noise threshold.
       time:   [1.7636 ms 1.7749 ms 1.7903 ms]
       change: [+0.2327% +0.8874% +1.8366%] (p = 0.01 < 0.05)

Found 10 outliers among 100 measurements (10.00%)
10 (10.00%) high severe

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [88.208 ns 88.539 ns 88.878 ns]
       change: [−0.5775% +0.0031% +0.5758%] (p = 0.99 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) high mild
4 (4.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [105.59 ns 105.91 ns 106.24 ns]
       change: [−1.3622% −0.2888% +0.5672%] (p = 0.61 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) high mild
12 (12.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [105.01 ns 105.43 ns 105.94 ns]
       change: [−0.3966% +0.0742% +0.5685%] (p = 0.77 > 0.05)

Found 16 outliers among 100 measurements (16.00%)
1 (1.00%) low severe
5 (5.00%) low mild
4 (4.00%) high mild
6 (6.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [88.832 ns 88.944 ns 89.066 ns]
       change: [−7.4917% −2.4791% +0.5349%] (p = 0.43 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
4 (4.00%) high mild
5 (5.00%) high severe

RxStreamOrderer::inbound_frame(): No change in performance detected.
       time:   [107.80 ms 107.90 ms 108.04 ms]
       change: [−0.2734% −0.0706% +0.1116%] (p = 0.52 > 0.05)

Found 19 outliers among 100 measurements (19.00%)
8 (8.00%) low mild
9 (9.00%) high mild
2 (2.00%) high severe

sent::Packets::take_ranges: :green_heart: Performance has improved.
       time:   [5.0530 µs 5.1412 µs 5.2334 µs]
       change: [−41.811% −35.596% −24.351%] (p = 0.00 < 0.05)

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

transfer/pacing-false/varying-seeds: Change within noise threshold.
       time:   [36.961 ms 37.034 ms 37.110 ms]
       change: [+0.9402% +1.2327% +1.5071%] (p = 0.00 < 0.05)
transfer/pacing-true/varying-seeds: Change within noise threshold.
       time:   [37.637 ms 37.761 ms 37.894 ms]
       change: [+0.2289% +0.6897% +1.1250%] (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:   [36.523 ms 36.592 ms 36.666 ms]
       change: [−1.0304% −0.7314% −0.4273%] (p = 0.00 < 0.05)

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

transfer/pacing-true/same-seed: No change in performance detected.
       time:   [38.057 ms 38.127 ms 38.198 ms]
       change: [−0.1857% +0.1119% +0.4049%] (p = 0.46 > 0.05)

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

Download data for profiler.firefox.com or download performance comparison data.

martinthomson pushed a commit to martinthomson/neqo that referenced this pull request Aug 21, 2025
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