Skip to content

fix(http3): reduce visibility of internal functions #2802

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mxinden
Copy link
Member

@mxinden mxinden commented Jul 21, 2025

Mark functions not used in Firefox as pub(crate). This enables us to detect unused code and simplifies future refactorings.

Mark functions not used in Firefox as pub(crate). This enables us to
detect unused code and simplifies future refactorings.
Copy link

codecov bot commented Jul 21, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 94.89%. Comparing base (10bb94b) to head (81aa725).
Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2802      +/-   ##
==========================================
- Coverage   94.91%   94.89%   -0.03%     
==========================================
  Files         115      115              
  Lines       34286    34302      +16     
  Branches    34286    34302      +16     
==========================================
+ Hits        32543    32551       +8     
- Misses       1734     1744      +10     
+ Partials        9        7       -2     
Components Coverage Δ
neqo-common 97.10% <ø> (ø)
neqo-crypto 89.64% <ø> (ø)
neqo-http3 93.72% <100.00%> (+<0.01%) ⬆️
neqo-qpack 95.45% <ø> (ø)
neqo-transport 95.95% <ø> (-0.05%) ⬇️
neqo-udp 89.85% <ø> (ø)

@mxinden mxinden marked this pull request as ready for review July 21, 2025 13:33
Copy link

Benchmark results

Performance differences relative to 8d26554.

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [198.23 ms 198.52 ms 198.81 ms]
       thrpt:  [503.00 MiB/s 503.74 MiB/s 504.47 MiB/s]
change:
       time:   [−0.2091% +0.0050% +0.2228%] (p = 0.97 > 0.05)
       thrpt:  [−0.2223% −0.0050% +0.2095%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [304.46 ms 305.99 ms 307.53 ms]
       thrpt:  [32.517 Kelem/s 32.681 Kelem/s 32.845 Kelem/s]
change:
       time:   [−0.2677% +0.4498% +1.1895%] (p = 0.23 > 0.05)
       thrpt:  [−1.1755% −0.4477% +0.2684%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [27.846 ms 27.979 ms 28.134 ms]
       thrpt:  [35.545   B/s 35.741   B/s 35.912   B/s]
change:
       time:   [−1.0191% −0.4101% +0.2856%] (p = 0.23 > 0.05)
       thrpt:  [−0.2848% +0.4118% +1.0296%]

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

1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: No change in performance detected.
       time:   [626.68 ms 631.13 ms 635.40 ms]
       thrpt:  [157.38 MiB/s 158.45 MiB/s 159.57 MiB/s]
change:
       time:   [−1.5171% −0.6244% +0.2839%] (p = 0.20 > 0.05)
       thrpt:  [−0.2831% +0.6283% +1.5405%]

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

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [11.819 µs 11.865 µs 11.922 µs]
       change: [−0.3179% +0.6032% +1.8831%] (p = 0.39 > 0.05)

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

decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [3.0205 ms 3.0351 ms 3.0549 ms]
       change: [−0.6075% +0.0112% +0.7878%] (p = 0.97 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
9 (9.00%) high severe

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [20.010 µs 20.064 µs 20.123 µs]
       change: [−0.0996% +0.1087% +0.3476%] (p = 0.34 > 0.05)

Found 14 outliers among 100 measurements (14.00%)
1 (1.00%) low severe
1 (1.00%) low mild
1 (1.00%) high mild
11 (11.00%) high severe

decode 1048576 bytes, mask 7f: No change in performance detected.
       time:   [5.0417 ms 5.0545 ms 5.0681 ms]
       change: [−0.4522% −0.0721% +0.3294%] (p = 0.72 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
12 (12.00%) high severe

decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [8.2486 µs 8.2632 µs 8.2862 µs]
       change: [−0.3577% −0.0714% +0.1967%] (p = 0.64 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
2 (2.00%) low severe
3 (3.00%) low mild
2 (2.00%) high mild
5 (5.00%) high severe

decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [1.5881 ms 1.5951 ms 1.6034 ms]
       change: [−0.5365% +0.0845% +0.7087%] (p = 0.82 > 0.05)

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

1000 streams of 1 bytes/multistream: No change in performance detected.
       time:   [27.706 ns 27.890 ns 28.083 ns]
       change: [−1.3280% −0.3573% +0.6098%] (p = 0.48 > 0.05)

Found 70 outliers among 500 measurements (14.00%)
63 (12.60%) high mild
7 (1.40%) high severe
Criterion.rs ERROR: Error in Gnuplot: line 0: Can't plot with an empty x range!

:
Criterion.rs ERROR: Error in Gnuplot:          line 0: Can't plot with an empty x range!
: No change in performance detected.

1000 streams of 1000 bytes/multistream
time: [27.939 ns 28.154 ns 28.382 ns]
change: [−0.6124% +0.4376% +1.5127%] (p = 0.44 > 0.05)

Found 26 outliers among 500 measurements (5.20%)
21 (4.20%) high mild
5 (1.00%) high severe
Criterion.rs ERROR: Error in Gnuplot: line 0: Can't plot with an empty x range!

:
Criterion.rs ERROR: Error in Gnuplot:          line 0: Can't plot with an empty x range!
: Change within noise threshold.

coalesce_acked_from_zero 1+1 entries
time: [88.470 ns 88.806 ns 89.136 ns]
change: [+0.1093% +0.5856% +1.1119%] (p = 0.02 < 0.05)

Found 11 outliers among 100 measurements (11.00%)
9 (9.00%) high mild
2 (2.00%) high severe

coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
       time:   [106.42 ns 106.78 ns 107.15 ns]
       change: [+0.2847% +0.9142% +1.6685%] (p = 0.01 < 0.05)

Found 16 outliers among 100 measurements (16.00%)
1 (1.00%) low mild
15 (15.00%) high severe

coalesce_acked_from_zero 10+1 entries: Change within noise threshold.
       time:   [105.83 ns 106.44 ns 107.15 ns]
       change: [+0.2248% +0.8304% +1.3550%] (p = 0.00 < 0.05)

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

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [89.650 ns 93.209 ns 101.14 ns]
       change: [+0.3463% +3.6891% +9.4339%] (p = 0.14 > 0.05)

Found 11 outliers among 100 measurements (11.00%)
5 (5.00%) high mild
6 (6.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [107.66 ms 107.73 ms 107.80 ms]
       change: [−1.2025% −0.9232% −0.7269%] (p = 0.00 < 0.05)

Found 26 outliers among 100 measurements (26.00%)
10 (10.00%) low severe
3 (3.00%) low mild
3 (3.00%) high mild
10 (10.00%) high severe

sent::Packets::take_ranges: No change in performance detected.
       time:   [8.0690 µs 8.2868 µs 8.4969 µs]
       change: [−14.020% +11.427% +55.279%] (p = 0.66 > 0.05)

Found 23 outliers among 100 measurements (23.00%)
4 (4.00%) low severe
12 (12.00%) low mild
4 (4.00%) high mild
3 (3.00%) high severe

transfer/pacing-false/varying-seeds: Change within noise threshold.
       time:   [37.658 ms 37.746 ms 37.842 ms]
       change: [+0.4591% +0.7544% +1.0723%] (p = 0.00 < 0.05)

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

transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [38.343 ms 38.454 ms 38.569 ms]
       change: [−0.3750% +0.0304% +0.4414%] (p = 0.88 > 0.05)

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

transfer/pacing-false/same-seed: Change within noise threshold.
       time:   [37.680 ms 37.759 ms 37.848 ms]
       change: [+1.5206% +1.8242% +2.1486%] (p = 0.00 < 0.05)

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

transfer/pacing-true/same-seed: No change in performance detected.
       time:   [38.964 ms 39.069 ms 39.188 ms]
       change: [−0.6501% −0.2709% +0.0935%] (p = 0.17 > 0.05)

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

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

@larseggert
Copy link
Collaborator

Is there a way to test whether this (1) has caught all the respective functions and (2) something we can do to correctly tag future ones?

Also, should we do something similar for types?

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