Skip to content

fix(transport/benches): use separate group name - #2934

Merged
larseggert merged 5 commits into
mozilla:mainfrom
mxinden:criterion-panic
Sep 5, 2025
Merged

larseggert merged 5 commits into
mozilla:mainfrom
mxinden:criterion-panic

Conversation

@mxinden

@mxinden mxinden commented Sep 3, 2025 •

Copy link
Copy Markdown
Member

Criterion needs each group name to be unique. Otherwise it will panic as it does in #2933.


Introduced in #2909. Though given that no main baseline was available, first only surfaced in #2897.

Fixes #2933.

Blocked on #2943.

@codecov

codecov Bot commented Sep 3, 2025 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.10%. Comparing base (12c7d94) to head (190784b).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2934      +/-   ##
==========================================
- Coverage   95.48%   93.10%   -2.38%     
==========================================
  Files         120      120              
  Lines       34958    34958              
  Branches    34958    34958              
==========================================
- Hits        33380    32548     -832     
- Misses       1538     1560      +22     
- Partials       40      850     +810     
Components Coverage Δ
neqo-common 97.23% <ø> (-0.91%) ⬇️
neqo-crypto 83.27% <ø> (-7.28%) ⬇️
neqo-http3 92.55% <ø> (-2.00%) ⬇️
neqo-qpack 94.14% <ø> (-2.09%) ⬇️
neqo-transport 94.38% <ø> (-2.13%) ⬇️
neqo-udp 80.48% <ø> (-10.74%) ⬇️
mtu 85.76% <ø> (-1.74%) ⬇️

@mxinden mxinden closed this Sep 3, 2025
@mxinden mxinden reopened this Sep 3, 2025
@mxinden
mxinden force-pushed the criterion-panic branch 3 times, most recently from b84db21 to 9dca9a8 Compare September 4, 2025 15:06
@mxinden mxinden changed the title ci(bench): backtrace full fix(transport/benches): use separate group name Sep 4, 2025
@mxinden
mxinden force-pushed the criterion-panic branch 3 times, most recently from 3577e37 to 29e96bd Compare September 5, 2025 07:11
@github-actions

github-actions Bot commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Client/server transfer results

Performance differences relative to 12c7d94.

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 455.0 ± 4.3 449.4 466.8 70.3 ± 7.4
google vs. neqo (cubic, paced) 276.9 ± 3.8 270.6 285.9 115.6 ± 8.4 -1.1 -0.4%
msquic vs. msquic 207.2 ± 75.6 145.8 510.0 154.4 ± 0.4
msquic vs. neqo (cubic, paced) 214.9 ± 53.0 156.9 393.0 148.9 ± 0.6 0.5 0.2%
neqo vs. google (cubic, paced) 757.6 ± 6.7 708.1 773.4 42.2 ± 4.8 -0.9 -0.1%
neqo vs. msquic (cubic, paced) 157.5 ± 5.0 149.9 183.4 203.2 ± 6.4 💔 1.8 1.2%
neqo vs. neqo (cubic) 92.5 ± 5.2 83.4 121.2 345.9 ± 6.2 1.1 1.2%
neqo vs. neqo (cubic, paced) 93.4 ± 4.7 83.8 108.0 342.7 ± 6.8 0.3 0.3%
neqo vs. neqo (reno) 90.5 ± 4.0 83.3 99.2 353.7 ± 8.0 -0.7 -0.7%
neqo vs. neqo (reno, paced) 92.3 ± 5.6 84.8 121.7 346.8 ± 5.7 💚 -2.1 -2.2%
neqo vs. quiche (cubic, paced) 192.9 ± 4.2 187.7 205.6 165.9 ± 7.6 -0.5 -0.3%
neqo vs. s2n (cubic, paced) 218.8 ± 3.6 213.5 227.0 146.2 ± 8.9 💚 -4.3 -1.9%
quiche vs. neqo (cubic, paced) 149.4 ± 4.9 141.8 162.7 214.2 ± 6.5 💚 -1.4 -0.9%
quiche vs. quiche 144.5 ± 5.7 136.2 161.3 221.5 ± 5.6
s2n vs. neqo (cubic, paced) 172.3 ± 4.6 162.7 182.0 185.7 ± 7.0 -0.2 -0.1%
s2n vs. s2n 246.4 ± 17.7 231.8 343.0 129.9 ± 1.8

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

@github-actions

github-actions Bot commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Benchmark results

Performance differences relative to 12c7d94.

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [207.38 ms 207.78 ms 208.33 ms]
       thrpt:  [480.00 MiB/s 481.27 MiB/s 482.21 MiB/s]
change:
       time:   [−0.5864% −0.2858% +0.0123%] (p = 0.07 > 0.05)
       thrpt:  [−0.0123% +0.2866% +0.5898%]

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

1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [298.99 ms 300.45 ms 301.91 ms]
       thrpt:  [33.122 Kelem/s 33.283 Kelem/s 33.446 Kelem/s]
change:
       time:   [−0.1398% +0.5795% +1.3175%] (p = 0.11 > 0.05)
       thrpt:  [−1.3003% −0.5762% +0.1400%]

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

1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [28.354 ms 28.422 ms 28.503 ms]
       thrpt:  [35.084   B/s 35.184   B/s 35.268   B/s]
change:
       time:   [−0.4336% −0.0548% +0.2974%] (p = 0.79 > 0.05)
       thrpt:  [−0.2966% +0.0548% +0.4355%]

Found 19 outliers among 100 measurements (19.00%)
16 (16.00%) low severe
3 (3.00%) high severe

1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: 💔 Performance has regressed.
       time:   [213.49 ms 213.77 ms 214.10 ms]
       thrpt:  [467.07 MiB/s 467.78 MiB/s 468.40 MiB/s]
change:
       time:   [+1.4427% +1.6312% +1.8419%] (p = 0.00 < 0.05)
       thrpt:  [−1.8086% −1.6050% −1.4221%]

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

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [11.809 µs 11.849 µs 11.895 µs]
       change: [−0.4131% +0.0250% +0.4175%] (p = 0.92 > 0.05)

Found 18 outliers among 100 measurements (18.00%)
2 (2.00%) low severe
6 (6.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.0230 ms 3.0409 ms 3.0676 ms]
       change: [−0.8563% +0.0238% +0.9096%] (p = 0.96 > 0.05)

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

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [19.964 µs 20.026 µs 20.097 µs]
       change: [−0.3508% +0.2337% +0.9581%] (p = 0.47 > 0.05)

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

decode 1048576 bytes, mask 7f: No change in performance detected.
       time:   [5.0458 ms 5.0571 ms 5.0702 ms]
       change: [−0.5509% −0.1274% +0.2427%] (p = 0.54 > 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.2547 µs 8.2804 µs 8.3131 µs]
       change: [−0.5551% −0.0654% +0.4163%] (p = 0.81 > 0.05)

Found 17 outliers among 100 measurements (17.00%)
4 (4.00%) low mild
4 (4.00%) high mild
9 (9.00%) high severe

decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [1.5867 ms 1.5926 ms 1.5995 ms]
       change: [−0.7923% −0.1648% +0.4241%] (p = 0.61 > 0.05)

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

1-streams/each-1000-bytes/wallclock-time: No change in performance detected.
       time:   [611.28 µs 613.41 µs 615.79 µs]
       change: [−1.4075% −0.6685% −0.0562%] (p = 0.06 > 0.05)

Found 8 outliers among 100 measurements (8.00%)
8 (8.00%) high severe
1-streams/each-1000-bytes/simulated-time
time: [116.18 ms 116.39 ms 116.59 ms]
thrpt: [8.3757 KiB/s 8.3907 KiB/s 8.4056 KiB/s]
change:
time: [−0.5389% −0.2880% −0.0241%] (p = 0.02 < 0.05)
thrpt: [+0.0241% +0.2888% +0.5418%]
Change within noise threshold.

1000-streams/each-1-bytes/wallclock-time: No change in performance detected.
       time:   [14.688 ms 14.722 ms 14.757 ms]
       change: [−0.1460% +0.1580% +0.4655%] (p = 0.32 > 0.05)

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
1000-streams/each-1-bytes/simulated-time
time: [14.972 s 14.984 s 14.997 s]
thrpt: [66.682 B/s 66.737 B/s 66.792 B/s]
change:
time: [−0.1077% +0.0148% +0.1441%] (p = 0.81 > 0.05)
thrpt: [−0.1439% −0.0148% +0.1078%]
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild

1000-streams/each-1000-bytes/wallclock-time: No change in performance detected. 1000-streams/each-1000-bytes/simulated-time time: [18.683 s 18.867 s 19.051 s] thrpt: [51.261 KiB/s 51.760 KiB/s 52.271 KiB/s] change: time: [−0.6936% +0.6691% +2.0561%] (p = 0.34 > 0.05) thrpt: [−2.0146% −0.6647% +0.6985%] No change in performance detected.
       time:   [56.180 ms 56.412 ms 56.643 ms]
       change: [−0.5238% −0.0085% +0.5263%] (p = 0.97 > 0.05)

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

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [88.465 ns 89.141 ns 89.989 ns]
       change: [+0.0587% +1.1211% +2.6070%] (p = 0.08 > 0.05)

Found 15 outliers among 100 measurements (15.00%)
10 (10.00%) high mild
5 (5.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [106.25 ns 106.76 ns 107.36 ns]
       change: [−1.0875% −0.0369% +1.1145%] (p = 0.95 > 0.05)

Found 16 outliers among 100 measurements (16.00%)
3 (3.00%) low mild
2 (2.00%) high mild
11 (11.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [105.57 ns 105.83 ns 106.19 ns]
       change: [−0.4125% +0.1434% +0.7157%] (p = 0.64 > 0.05)

Found 18 outliers among 100 measurements (18.00%)
7 (7.00%) low severe
4 (4.00%) low mild
1 (1.00%) high mild
6 (6.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [88.838 ns 89.069 ns 89.424 ns]
       change: [−1.4416% −0.1826% +0.9836%] (p = 0.78 > 0.05)

Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) high mild
7 (7.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [107.29 ms 107.47 ms 107.74 ms]
       change: [+0.0598% +0.2396% +0.5278%] (p = 0.02 < 0.05)

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

sent::Packets::take_ranges: No change in performance detected.
       time:   [4.7380 µs 4.8517 µs 4.9558 µs]
       change: [−2.7074% +0.7345% +4.2095%] (p = 0.67 > 0.05)

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

transfer/pacing-false/varying-seeds/wallclock-time/run:
       time:   [26.241 ms 26.286 ms 26.331 ms]
transfer/pacing-false/varying-seeds/simulated-time/run:
       time:   [25.117 s 25.149 s 25.181 s]
       thrpt:  [162.67 KiB/s 162.87 KiB/s 163.08 KiB/s]
transfer/pacing-true/varying-seeds/wallclock-time/run:
       time:   [26.535 ms 26.587 ms 26.638 ms]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high mild
transfer/pacing-true/varying-seeds/simulated-time/run:
       time:   [24.960 s 25.001 s 25.043 s]
       thrpt:  [163.56 KiB/s 163.83 KiB/s 164.11 KiB/s]
Found 2 outliers among 100 measurements (2.00%)
  2 (2.00%) high mild
transfer/pacing-false/same-seed/wallclock-time/run:
       time:   [25.639 ms 25.668 ms 25.701 ms]
Found 1 outliers among 100 measurements (1.00%)
  1 (1.00%) high severe
transfer/pacing-false/same-seed/simulated-time/run:
       time:   [25.152 s 25.152 s 25.152 s]
       thrpt:  [162.85 KiB/s 162.85 KiB/s 162.85 KiB/s]
:
:
:
:
transfer/pacing-true/same-seed/wallclock-time/run:
       time:   [27.312 ms 27.331 ms 27.351 ms]
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) low mild
  2 (2.00%) high mild
transfer/pacing-true/same-seed/simulated-time/run:
       time:   [25.588 s 25.588 s 25.588 s]
       thrpt:  [160.07 KiB/s 160.07 KiB/s 160.07 KiB/s]
:
:
:
:

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

@mxinden
mxinden marked this pull request as ready for review September 5, 2025 14:32
@mxinden

mxinden commented Sep 5, 2025

Copy link
Copy Markdown
Member Author

Ready for review. @larseggert I can fix the empty sections in the benchmark comment in a follow-up. No need to block all of you.

@github-actions

github-actions Bot commented Sep 5, 2025

Copy link
Copy Markdown
Contributor

Failed Interop Tests

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

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

@larseggert
larseggert added this pull request to the merge queue Sep 5, 2025
Merged via the queue into mozilla:main with commit 41ce558 Sep 5, 2025
135 of 137 checks passed
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.

ci: cargo bench failure

2 participants