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

chore: Use EnumSet instead of a Boolean EnumMap #2443

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

larseggert
Copy link
Collaborator

For PacketNumberSpaceSet. May be faster?

For `PacketNumberSpaceSet`. May be faster?
Copy link

codecov bot commented Feb 13, 2025

Codecov Report

Attention: Patch coverage is 85.71429% with 1 line in your changes missing coverage. Please review.

Project coverage is 95.25%. Comparing base (d247751) to head (cb36878).

Files with missing lines Patch % Lines
neqo-transport/src/tracking.rs 0.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2443      +/-   ##
==========================================
- Coverage   95.26%   95.25%   -0.01%     
==========================================
  Files         115      115              
  Lines       37198    37132      -66     
  Branches    37198    37132      -66     
==========================================
- Hits        35436    35370      -66     
  Misses       1756     1756              
  Partials        6        6              

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

Copy link

github-actions bot commented Feb 13, 2025

Failed Interop Tests

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

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 13, 2025

Benchmark results

Performance differences relative to ef6e6f4.

decode 4096 bytes, mask ff: 💔 Performance has regressed.
       time:   [12.334 µs 12.378 µs 12.427 µs]
       change: [+12.542% +13.448% +14.269%] (p = 0.00 < 0.05)

Found 19 outliers among 100 measurements (19.00%)
1 (1.00%) low severe
4 (4.00%) low mild
3 (3.00%) high mild
11 (11.00%) high severe

decode 1048576 bytes, mask ff: 💚 Performance has improved.
       time:   [2.8370 ms 2.8471 ms 2.8585 ms]
       change: [-9.7144% -9.2686% -8.8241%] (p = 0.00 < 0.05)

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

decode 4096 bytes, mask 7f: 💔 Performance has regressed.
       time:   [20.847 µs 20.898 µs 20.954 µs]
       change: [+17.793% +18.277% +18.812%] (p = 0.00 < 0.05)

Found 23 outliers among 100 measurements (23.00%)
3 (3.00%) low severe
2 (2.00%) low mild
3 (3.00%) high mild
15 (15.00%) high severe

decode 1048576 bytes, mask 7f: 💚 Performance has improved.
       time:   [4.5406 ms 4.5517 ms 4.5645 ms]
       change: [-16.129% -15.851% -15.566%] (p = 0.00 < 0.05)

Found 14 outliers among 100 measurements (14.00%)
1 (1.00%) high mild
13 (13.00%) high severe

decode 4096 bytes, mask 3f: 💔 Performance has regressed.
       time:   [8.2538 µs 8.2754 µs 8.3041 µs]
       change: [+25.923% +26.695% +27.437%] (p = 0.00 < 0.05)

Found 10 outliers among 100 measurements (10.00%)
3 (3.00%) high mild
7 (7.00%) high severe

decode 1048576 bytes, mask 3f: 💚 Performance has improved.
       time:   [1.5883 ms 1.5939 ms 1.6008 ms]
       change: [-9.6672% -9.3528% -8.8799%] (p = 0.00 < 0.05)

Found 8 outliers among 100 measurements (8.00%)
2 (2.00%) high mild
6 (6.00%) high severe

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [91.412 ns 91.754 ns 92.093 ns]
       change: [-0.3013% +0.1212% +0.5387%] (p = 0.59 > 0.05)

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

coalesce_acked_from_zero 3+1 entries: Change within noise threshold.
       time:   [109.97 ns 110.70 ns 111.80 ns]
       change: [+0.1890% +0.7319% +1.4248%] (p = 0.01 < 0.05)

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

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [109.56 ns 110.09 ns 110.70 ns]
       change: [-0.5935% +0.1181% +0.9079%] (p = 0.76 > 0.05)

Found 14 outliers among 100 measurements (14.00%)
4 (4.00%) low mild
1 (1.00%) high mild
9 (9.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [93.739 ns 93.910 ns 94.098 ns]
       change: [-0.6786% +0.4624% +1.6186%] (p = 0.47 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
8 (8.00%) high mild
5 (5.00%) high severe

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [111.78 ms 111.84 ms 111.89 ms]
       change: [+0.1843% +0.2532% +0.3242%] (p = 0.00 < 0.05)

Found 14 outliers among 100 measurements (14.00%)
7 (7.00%) low mild
7 (7.00%) high mild

SentPackets::take_ranges: No change in performance detected.
       time:   [5.1573 µs 5.2454 µs 5.3345 µs]
       change: [-4.8669% -2.2939% +0.3611%] (p = 0.10 > 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: No change in performance detected.
       time:   [34.272 ms 34.340 ms 34.408 ms]
       change: [-0.1032% +0.2137% +0.5171%] (p = 0.18 > 0.05)
transfer/pacing-true/varying-seeds: Change within noise threshold.
       time:   [34.794 ms 34.861 ms 34.930 ms]
       change: [+1.1178% +1.4297% +1.7235%] (p = 0.00 < 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:   [34.741 ms 34.826 ms 34.916 ms]
       change: [+0.7578% +1.0582% +1.3571%] (p = 0.00 < 0.05)

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

transfer/pacing-true/same-seed: Change within noise threshold.
       time:   [35.373 ms 35.438 ms 35.510 ms]
       change: [+1.7696% +2.0292% +2.3059%] (p = 0.00 < 0.05)

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

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [838.17 ms 846.38 ms 854.77 ms]
       thrpt:  [116.99 MiB/s 118.15 MiB/s 119.31 MiB/s]
change:
       time:   [-2.6167% -1.1321% +0.4323%] (p = 0.16 > 0.05)
       thrpt:  [-0.4304% +1.1451% +2.6870%]

Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high mild

1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [313.67 ms 317.12 ms 320.63 ms]
       thrpt:  [31.189 Kelem/s 31.534 Kelem/s 31.880 Kelem/s]
change:
       time:   [-2.1544% -0.6690% +0.8923%] (p = 0.38 > 0.05)
       thrpt:  [-0.8844% +0.6735% +2.2018%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [25.361 ms 25.525 ms 25.691 ms]
       thrpt:  [38.924  elem/s 39.178  elem/s 39.430  elem/s]
change:
       time:   [-1.5462% -0.6063% +0.3938%] (p = 0.22 > 0.05)
       thrpt:  [-0.3923% +0.6100% +1.5705%]

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

1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: 💚 Performance has improved.
       time:   [1.8072 s 1.8230 s 1.8388 s]
       thrpt:  [54.382 MiB/s 54.854 MiB/s 55.334 MiB/s]
change:
       time:   [-4.8230% -3.6139% -2.3112%] (p = 0.00 < 0.05)
       thrpt:  [+2.3659% +3.7494% +5.0674%]

Client/server transfer results

Performance differences relative to ef6e6f4.

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 505.7 ± 61.0 431.1 686.0 💚 -40.0 -1.9%
neqo neqo reno 508.3 ± 77.3 423.9 722.3 -46.3 -2.2%
neqo neqo cubic on 516.4 ± 54.7 463.7 744.0 💚 -41.2 -1.9%
neqo neqo cubic 526.0 ± 76.0 446.2 846.8 -22.4 -1.0%
google neqo reno on 881.8 ± 100.5 648.2 1074.6 -14.2 -0.4%
google neqo reno 892.3 ± 118.1 669.3 1153.6 -3.3 -0.1%
google neqo cubic on 885.1 ± 116.9 626.6 1223.7 -17.0 -0.5%
google neqo cubic 880.4 ± 103.1 642.7 1130.2 -1.6 -0.0%
google google 551.1 ± 34.3 523.3 682.1 9.3 0.4%
neqo msquic reno on 229.5 ± 32.1 204.1 359.1 -2.9 -0.3%
neqo msquic reno 238.5 ± 58.2 197.9 485.3 8.3 0.9%
neqo msquic cubic on 240.9 ± 68.6 198.3 456.2 8.2 0.9%
neqo msquic cubic 235.2 ± 60.3 202.3 487.3 14.1 1.5%
msquic msquic 121.5 ± 41.5 98.2 326.7 9.2 2.0%

⬇️ Download logs

neqo-transport/src/tracking.rs Outdated Show resolved Hide resolved
@larseggert larseggert enabled auto-merge February 14, 2025 06:41
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.

3 participants