-
Notifications
You must be signed in to change notification settings - Fork 124
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
feat: Shuffle the client Initial crypto data #2228
base: main
Are you sure you want to change the base?
Conversation
Look for ranges of `N` or more bytes of graphical ASCII data in `data`. Create at least one split point for each range, multiple ones each `N` bytes if the range is long enough. Create data chunks based on those split points. Shuffle the chunks and return them. CC @martinthomson @dennisjackson
Failed Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2228 +/- ##
==========================================
+ Coverage 95.37% 95.39% +0.02%
==========================================
Files 112 112
Lines 36563 36726 +163
==========================================
+ Hits 34872 35035 +163
Misses 1691 1691 ☔ View full report in Codecov by Sentry. |
Benchmark resultsPerformance differences relative to 68e19fc. coalesce_acked_from_zero 1+1 entries: 💔 Performance has regressed.time: [105.06 ns 105.39 ns 105.72 ns] change: [+15.668% +16.427% +17.107%] (p = 0.00 < 0.05) coalesce_acked_from_zero 3+1 entries: 💔 Performance has regressed.time: [120.90 ns 121.31 ns 121.74 ns] change: [+17.463% +18.175% +18.907%] (p = 0.00 < 0.05) coalesce_acked_from_zero 10+1 entries: 💔 Performance has regressed.time: [120.44 ns 120.97 ns 121.69 ns] change: [+17.793% +18.396% +19.104%] (p = 0.00 < 0.05) coalesce_acked_from_zero 1000+1 entries: 💔 Performance has regressed.time: [100.77 ns 100.92 ns 101.09 ns] change: [+24.584% +26.175% +27.680%] (p = 0.00 < 0.05) RxStreamOrderer::inbound_frame(): Change within noise threshold.time: [111.34 ms 111.47 ms 111.68 ms] change: [-0.3123% -0.1806% +0.0512%] (p = 0.02 < 0.05) transfer/pacing-false/varying-seeds: Change within noise threshold.time: [25.878 ms 26.930 ms 27.976 ms] change: [-10.961% -5.7746% -0.4791%] (p = 0.03 < 0.05) transfer/pacing-true/varying-seeds: No change in performance detected.time: [33.610 ms 35.178 ms 36.700 ms] change: [-8.5493% -2.4048% +4.1986%] (p = 0.47 > 0.05) transfer/pacing-false/same-seed: Change within noise threshold.time: [24.783 ms 25.650 ms 26.539 ms] change: [-8.8786% -4.6845% -0.5154%] (p = 0.03 < 0.05) transfer/pacing-true/same-seed: No change in performance detected.time: [40.200 ms 42.409 ms 44.648 ms] change: [-8.7856% -1.9785% +5.2403%] (p = 0.58 > 0.05) 1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.time: [910.13 ms 918.60 ms 927.14 ms] thrpt: [107.86 MiB/s 108.86 MiB/s 109.87 MiB/s] change: time: [-2.1263% -0.8129% +0.4358%] (p = 0.22 > 0.05) thrpt: [-0.4339% +0.8195% +2.1725%] 1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.time: [319.90 ms 323.29 ms 326.78 ms] thrpt: [30.601 Kelem/s 30.932 Kelem/s 31.260 Kelem/s] change: time: [-1.8396% -0.3597% +1.0478%] (p = 0.63 > 0.05) thrpt: [-1.0370% +0.3610% +1.8741%] 1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.time: [34.298 ms 34.456 ms 34.633 ms] thrpt: [28.874 elem/s 29.022 elem/s 29.156 elem/s] change: time: [-0.3577% +0.3962% +1.1376%] (p = 0.30 > 0.05) thrpt: [-1.1248% -0.3947% +0.3590%] 1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected.time: [1.6906 s 1.7062 s 1.7232 s] thrpt: [58.033 MiB/s 58.609 MiB/s 59.151 MiB/s] change: time: [-0.5759% +0.9413% +2.4603%] (p = 0.22 > 0.05) thrpt: [-2.4012% -0.9326% +0.5792%] Client/server transfer resultsTransfer of 33554432 bytes over loopback.
|
for i in 0..(n - 1) { | ||
// j ← random integer such that i ≤ j < n | ||
let j = loop { | ||
let j = (random::<8>()[0] as usize) % (n - i) + i; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is there a modulo bias here when n - i
does not evenly divide 256
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe? Not sure if it matters in practice, since we just try to get some order out that isn't sequential.
Look for ranges of
N
or more bytes of graphical ASCII data indata
. Create at least one split point atN/2
into the range for each range, multiple ones eachN
bytes afterwards if the range is long enough. Create data chunks based on those split points. Shuffle the chunks and return them. (N
is currently3
.)CC @martinthomson @dennisjackson