Skip to content

fix: Does symbol localization actually help?#3582

Closed
larseggert wants to merge 3 commits intomozilla:mainfrom
larseggert:fix-unreachable_pub
Closed

fix: Does symbol localization actually help?#3582
larseggert wants to merge 3 commits intomozilla:mainfrom
larseggert:fix-unreachable_pub

Conversation

@larseggert
Copy link
Copy Markdown
Collaborator

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

❌ Patch coverage is 99.63168% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 94.87%. Comparing base (ff043d6) to head (eb20ff0).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3582      +/-   ##
==========================================
+ Coverage   94.85%   94.87%   +0.01%     
==========================================
  Files         114      114              
  Lines       37931    38017      +86     
  Branches    37931    38017      +86     
==========================================
+ Hits        35979    36067      +88     
+ Misses       1252     1250       -2     
  Partials      700      700              
Flag Coverage Δ
freebsd 93.99% <99.62%> (+15.15%) ⬆️
linux 95.01% <99.62%> (+0.01%) ⬆️
macos 94.96% <99.63%> (+<0.01%) ⬆️
windows 95.01% <99.62%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
neqo-common 98.61% <100.00%> (ø)
neqo-http3 93.93% <99.18%> (+<0.01%) ⬆️
neqo-qpack 95.15% <100.00%> (+0.01%) ⬆️
neqo-transport 95.62% <99.71%> (+0.02%) ⬆️
neqo-udp 84.90% <ø> (ø)
mtu 86.61% <100.00%> (ø)

@larseggert
Copy link
Copy Markdown
Collaborator Author

Seems to make no difference and is super intrusive.

@larseggert larseggert closed this Apr 30, 2026
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark results

No significant performance differences relative to c032e66.

All results
transfer/1-conn/1-100mb-resp (aka. Download): Change within noise threshold.
       time:   [200.23 ms 200.61 ms 201.10 ms]
       thrpt:  [497.26 MiB/s 498.47 MiB/s 499.43 MiB/s]
change:
       time:   [-1.3607% -1.0881% -0.7887] (p = 0.00 < 0.05)
       thrpt:  [+0.7950% +1.1001% +1.3795]
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/1-conn/10_000-parallel-1b-resp (aka. RPS): No change in performance detected.
       time:   [282.95 ms 284.95 ms 286.99 ms]
       thrpt:  [34.845 Kelem/s 35.094 Kelem/s 35.342 Kelem/s]
change:
       time:   [-1.6793% -0.7555% +0.1478] (p = 0.10 > 0.05)
       thrpt:  [-0.1476% +0.7613% +1.7080]
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
transfer/1-conn/1-1b-resp (aka. HPS): No change in performance detected.
       time:   [38.778 ms 38.970 ms 39.185 ms]
       thrpt:  [25.520   B/s 25.661   B/s 25.788   B/s]
change:
       time:   [-0.3036% +0.3445% +1.0534] (p = 0.31 > 0.05)
       thrpt:  [-1.0424% -0.3434% +0.3045]
       No change in performance detected.
Found 10 outliers among 100 measurements (10.00%)
1 (1.00%) high mild
9 (9.00%) high severe
transfer/1-conn/1-100mb-req (aka. Upload): Change within noise threshold.
       time:   [203.00 ms 203.42 ms 203.90 ms]
       thrpt:  [490.43 MiB/s 491.58 MiB/s 492.61 MiB/s]
change:
       time:   [-0.6859% -0.3946% -0.0954] (p = 0.01 < 0.05)
       thrpt:  [+0.0954% +0.3962% +0.6906]
       Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
streams/walltime/1-streams/each-1000-bytes: Change within noise threshold.
       time:   [587.21 µs 588.51 µs 590.17 µs]
       change: [-0.9507% -0.4842% -0.0269] (p = 0.04 < 0.05)
       Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high severe
streams/walltime/1000-streams/each-1-bytes: Change within noise threshold.
       time:   [12.280 ms 12.297 ms 12.315 ms]
       change: [-1.1836% -0.7383% -0.4057] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
streams/walltime/1000-streams/each-1000-bytes: Change within noise threshold.
       time:   [44.846 ms 44.921 ms 45.024 ms]
       change: [+0.2636% +0.4562% +0.7143] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high severe
transfer/walltime/pacing-false/varying-seeds: Change within noise threshold.
       time:   [22.946 ms 22.978 ms 23.025 ms]
       change: [-0.7444% -0.5828% -0.3561] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
transfer/walltime/pacing-true/varying-seeds: Change within noise threshold.
       time:   [23.257 ms 23.283 ms 23.316 ms]
       change: [-0.7504% -0.6273% -0.4564] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
3 (3.00%) high mild
1 (1.00%) high severe
transfer/walltime/pacing-false/same-seed: No change in performance detected.
       time:   [23.105 ms 23.131 ms 23.168 ms]
       change: [-0.2165% -0.0794% +0.0801] (p = 0.37 > 0.05)
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
transfer/walltime/pacing-true/same-seed: Change within noise threshold.
       time:   [23.798 ms 23.830 ms 23.875 ms]
       change: [+1.1225% +1.2799% +1.4725] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high severe

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

@github-actions
Copy link
Copy Markdown
Contributor

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to main at c032e66.

neqo-pr as clientneqo-pr as server
neqo-pr vs. go-x-net: BP BA
neqo-pr vs. haproxy: BP BA
neqo-pr vs. kwik: L1 BP BA
neqo-pr vs. linuxquic: run cancelled after 20 min
neqo-pr vs. lsquic: run cancelled after 20 min
neqo-pr vs. msquic: A L1 C1
neqo-pr vs. mvfst: A BP BA
neqo-pr vs. neqo: A
neqo-pr vs. nginx: BP BA
neqo-pr vs. ngtcp2: CM
neqo-pr vs. picoquic: A
neqo-pr vs. quic-go: A
neqo-pr vs. quiche: BP BA
neqo-pr vs. s2n-quic: 🚀BA CM
neqo-pr vs. tquic: S BP BA
neqo-pr vs. xquic: A L1 🚀C1 ⚠️BA
aioquic vs. neqo-pr: ⚠️C1 CM
go-x-net vs. neqo-pr: 🚀BP BA CM
kwik vs. neqo-pr: BP BA CM
msquic vs. neqo-pr: CM
mvfst vs. neqo-pr: Z A L1 C1 CM
neqo vs. neqo-pr: A
openssl vs. neqo-pr: LR M A CM
quic-go vs. neqo-pr: CM
quic-zig vs. neqo-pr: DC
quiche vs. neqo-pr: run cancelled after 20 min
quinn vs. neqo-pr: ⚠️L1 V2 CM
s2n-quic vs. neqo-pr: CM
tquic vs. neqo-pr: ⚠️BA CM
xquic vs. neqo-pr: M CM
All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

@github-actions
Copy link
Copy Markdown
Contributor

Client/server transfer results

Performance differences relative to c032e66.

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 ± σ Δ baseline Δ baseline
neqo-msquic-cubic 155.1 ± 5.8 147.0 179.0 206.3 ± 5.5 💔 2.3 1.5%

Table above only shows statistically significant changes. See all results below.

All results

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 ± σ Δ baseline Δ baseline
google-google-nopacing 455.1 ± 2.2 448.4 467.9 70.3 ± 14.5
google-neqo-cubic 268.5 ± 2.8 263.9 279.9 119.2 ± 11.4 0.1 0.1%
msquic-msquic-nopacing 128.4 ± 34.5 110.9 344.8 249.2 ± 0.9
msquic-neqo-cubic 163.4 ± 47.7 122.6 508.6 195.9 ± 0.7 7.1 4.5%
neqo-google-cubic 767.6 ± 3.0 762.8 782.6 41.7 ± 10.7 0.9 0.1%
neqo-msquic-cubic 155.1 ± 5.8 147.0 179.0 206.3 ± 5.5 💔 2.3 1.5%
neqo-neqo-cubic 92.5 ± 3.6 88.3 120.1 345.9 ± 8.9 0.5 0.5%
neqo-neqo-cubic-nopacing 90.8 ± 2.8 84.8 98.1 352.4 ± 11.4 0.1 0.1%
neqo-neqo-newreno 92.3 ± 2.4 87.8 97.2 346.6 ± 13.3 0.2 0.3%
neqo-neqo-newreno-nopacing 91.1 ± 2.8 85.9 101.8 351.2 ± 11.4 0.0 0.0%
neqo-quiche-cubic 190.1 ± 2.9 184.1 199.4 168.4 ± 11.0 -0.2 -0.1%
neqo-s2n-cubic 215.3 ± 2.1 209.8 221.4 148.6 ± 15.2 -0.2 -0.1%
quiche-neqo-cubic 170.0 ± 3.2 157.3 178.3 188.2 ± 10.0 -0.1 -0.0%
quiche-quiche-nopacing 138.9 ± 2.4 133.8 145.6 230.4 ± 13.3
s2n-neqo-cubic 215.1 ± 4.2 209.6 244.5 148.8 ± 7.6 0.5 0.2%
s2n-s2n-nopacing 294.2 ± 29.1 278.4 387.8 108.8 ± 1.1

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

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.

1 participant