Skip to content

bench(transport/recovery): benchmark SentPackets::take_ranges - #2253

Merged
mxinden merged 5 commits into
mozilla:mainfrom
mxinden:sent-packets-bench
Nov 26, 2024
Merged

mxinden merged 5 commits into
mozilla:mainfrom
mxinden:sent-packets-bench

Conversation

@mxinden

@mxinden mxinden commented Nov 25, 2024

Copy link
Copy Markdown
Member

This pull request extracts the benchmark from #2245.

I suggest we merge here first. We can then compare #2245 against its baseline on main.

Note the second separate commit, addressing clippy lints only (82ef97e).

In order to benchmark `SentPackets::take_ranges`, we need to make `packets`,
`recovery` and `sent` public modules, feature flagged with `bench`.

Public modules have stricter clippy lints.

This commit addresses the failing clippy lints.
@mxinden mxinden changed the title Sent packets bench bench(transport/recovery): benchmark SentPackets::take_ranges Nov 25, 2024
@mxinden
mxinden marked this pull request as ready for review November 25, 2024 16:30
@github-actions

github-actions Bot commented Nov 25, 2024 •

Copy link
Copy Markdown
Contributor

Failed Interop Tests

QUIC Interop Runner, client vs. server

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

@codecov

codecov Bot commented Nov 25, 2024 •

Copy link
Copy Markdown

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 95.37%. Comparing base (2fb1a3b) to head (1ed1ca0).
Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2253      +/-   ##
==========================================
- Coverage   95.37%   95.37%   -0.01%     
==========================================
  Files         112      112              
  Lines       36569    36567       -2     
==========================================
- Hits        34879    34875       -4     
- Misses       1690     1692       +2     

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

@github-actions

github-actions Bot commented Nov 25, 2024 •

Copy link
Copy Markdown
Contributor

Benchmark results

Performance differences relative to 2fb1a3b.

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [99.127 ns 99.456 ns 99.792 ns]
       change: [-0.7973% -0.2040% +0.3593%] (p = 0.52 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
7 (7.00%) high mild
5 (5.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [117.40 ns 117.80 ns 118.21 ns]
       change: [-0.3926% +0.3106% +1.1108%] (p = 0.47 > 0.05)

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

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [116.84 ns 117.25 ns 117.77 ns]
       change: [-0.4678% +0.0552% +0.6559%] (p = 0.85 > 0.05)

Found 14 outliers among 100 measurements (14.00%)
6 (6.00%) low severe
1 (1.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:   [97.298 ns 97.425 ns 97.568 ns]
       change: [-0.9875% -0.1627% +0.6617%] (p = 0.70 > 0.05)

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

RxStreamOrderer::inbound_frame(): Change within noise threshold.
       time:   [112.08 ms 112.13 ms 112.19 ms]
       change: [-0.2810% -0.2128% -0.1444%] (p = 0.00 < 0.05)

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

SentPackets::take_ranges:
       time:   [157.04 µs 157.66 µs 158.19 µs]
transfer/pacing-false/varying-seeds: No change in performance detected.
       time:   [26.773 ms 27.732 ms 28.709 ms]
       change: [-4.9717% -0.3361% +4.7053%] (p = 0.89 > 0.05)
transfer/pacing-true/varying-seeds: No change in performance detected.
       time:   [34.248 ms 35.979 ms 37.716 ms]
       change: [-5.6813% +0.8108% +7.8947%] (p = 0.82 > 0.05)

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

transfer/pacing-false/same-seed: No change in performance detected.
       time:   [25.507 ms 26.322 ms 27.148 ms]
       change: [-6.0300% -1.9772% +2.3137%] (p = 0.37 > 0.05)
transfer/pacing-true/same-seed: No change in performance detected.
       time:   [40.788 ms 42.861 ms 44.966 ms]
       change: [-7.0481% -0.9421% +6.0606%] (p = 0.79 > 0.05)
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: Change within noise threshold.
       time:   [927.21 ms 935.87 ms 944.65 ms]
       thrpt:  [105.86 MiB/s 106.85 MiB/s 107.85 MiB/s]
change:
       time:   [-3.2439% -1.9554% -0.6187%] (p = 0.00 < 0.05)
       thrpt:  [+0.6226% +1.9943% +3.3527%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [317.91 ms 321.20 ms 324.53 ms]
       thrpt:  [30.813 Kelem/s 31.133 Kelem/s 31.455 Kelem/s]
change:
       time:   [-1.8306% -0.3840% +0.9605%] (p = 0.58 > 0.05)
       thrpt:  [-0.9513% +0.3854% +1.8647%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [33.510 ms 33.685 ms 33.868 ms]
       thrpt:  [29.527  elem/s 29.687  elem/s 29.842  elem/s]
change:
       time:   [-1.4493% -0.6925% +0.0786%] (p = 0.08 > 0.05)
       thrpt:  [-0.0785% +0.6974% +1.4707%]

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

1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected.
       time:   [1.6664 s 1.6865 s 1.7076 s]
       thrpt:  [58.561 MiB/s 59.295 MiB/s 60.010 MiB/s]
change:
       time:   [-3.3421% -1.6807% +0.0839%] (p = 0.06 > 0.05)
       thrpt:  [-0.0838% +1.7095% +3.4577%]

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

Client/server transfer results

Transfer of 33554432 bytes over loopback.

Client Server CC Pacing MTU Mean [ms] Min [ms] Max [ms]
gquiche gquiche 1504 585.6 ± 102.0 505.5 739.9
neqo gquiche reno on 1504 791.0 ± 114.3 740.9 1114.6
neqo gquiche reno 1504 771.3 ± 19.4 736.7 797.8
neqo gquiche cubic on 1504 796.4 ± 52.3 753.5 929.0
neqo gquiche cubic 1504 783.9 ± 72.3 723.8 977.9
msquic msquic 1504 151.3 ± 99.6 91.0 441.4
neqo msquic reno on 1504 224.7 ± 14.1 201.9 252.9
neqo msquic reno 1504 264.3 ± 85.6 199.2 460.9
neqo msquic cubic on 1504 267.6 ± 83.3 202.0 471.1
neqo msquic cubic 1504 213.5 ± 17.1 196.7 249.8
gquiche neqo reno on 1504 780.8 ± 188.1 583.4 1247.2
gquiche neqo reno 1504 745.9 ± 121.4 605.0 995.3
gquiche neqo cubic on 1504 753.7 ± 91.5 624.1 887.8
gquiche neqo cubic 1504 803.1 ± 133.4 590.9 992.5
msquic neqo reno on 1504 708.0 ± 13.8 687.4 732.2
msquic neqo reno 1504 712.1 ± 10.9 689.7 724.3
msquic neqo cubic on 1504 762.7 ± 156.2 692.6 1205.9
msquic neqo cubic 1504 721.5 ± 69.0 682.1 911.9
neqo neqo reno on 1504 646.7 ± 31.5 581.5 704.3
neqo neqo reno 1504 671.9 ± 85.7 543.0 874.1
neqo neqo cubic on 1504 620.7 ± 25.2 555.3 641.0
neqo neqo cubic 1504 646.5 ± 47.6 618.6 778.8

⬇️ Download logs

@martinthomson martinthomson left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's possible that I'm confused. I'm sure that you'll work it out.

Comment thread neqo-transport/src/recovery/mod.rs Resolved
Comment thread neqo-transport/src/recovery/sent.rs Resolved
Comment thread neqo-transport/src/recovery/sent.rs Resolved
@mxinden
mxinden enabled auto-merge November 26, 2024 08:12
@mxinden
mxinden added this pull request to the merge queue Nov 26, 2024
Merged via the queue into mozilla:main with commit baae4f2 Nov 26, 2024
@mxinden
mxinden deleted the sent-packets-bench branch November 26, 2024 09:03
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