bench(transfer): par_bridge vs into_par_iter on 100K work items (#1403)#4200
Merged
Conversation
Adds a Criterion bench in crates/transfer/benches that compares three
rayon dispatch shapes - `into_par_iter` over an owned Vec, `par_bridge`
over a Vec iterator, and `par_bridge` over a pure generator - across
{1, 4, 8, 16} workers on a fixed 100K small-file workload. Throughput
is reported in items/sec via `Throughput::Elements`. The numbers feed
the dispatch-shape decisions tracked in #1284, #1370, and #1681.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Adds a Criterion bench in crates/transfer/benches that compares three
rayon dispatch shapes - `into_par_iter` over an owned Vec, `par_bridge`
over a Vec iterator, and `par_bridge` over a pure generator - across
{1, 4, 8, 16} workers on a fixed 100K small-file workload. Throughput
is reported in items/sec via `Throughput::Elements`. The numbers feed
the dispatch-shape decisions tracked in #1284, #1370, and #1681.
oferchen
added a commit
that referenced
this pull request
May 18, 2026
Adds a Criterion bench in crates/transfer/benches that compares three
rayon dispatch shapes - `into_par_iter` over an owned Vec, `par_bridge`
over a Vec iterator, and `par_bridge` over a pure generator - across
{1, 4, 8, 16} workers on a fixed 100K small-file workload. Throughput
is reported in items/sec via `Throughput::Elements`. The numbers feed
the dispatch-shape decisions tracked in #1284, #1370, and #1681.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
crates/transfer/benches/par_bridge_vs_deque.rs, a Criterion bench that compares three rayon dispatch shapes on a synthetic 100K small-file workload:into_par_iterover an ownedVec,par_bridgeover a pre-allocatedVeciterator, andpar_bridgeover a pure generator iterator.{1, 4, 8, 16}workers via a private rayon pool per row so the global pool size cannot skew results; throughput is reported in items/sec viaThroughput::Elements(100_000).par_bridgechannel becomes a bottleneck at 100K-file scales) and the action favourable or unfavourable numbers would inform for tasks Add coverage for burst-only bandwidth overrides #1284 (io_uring + rayon composition), Add brand parsing helpers for environment overrides #1370 (per-thread fold), and Refactor daemon CLI into dedicated module #1681 (gated dispatch refactor).Notes
std,criterion, andrayon.Test plan
cargo check -p transfer --benches