Fibre Oneshot benchmarks

one value, one time, a fresh channel per op

Throughput in Melem/s: Million items per second per item sent, median of samples. The best result in each row is highlighted. In batched tables, the bracketed figure is the gain over the same implementation's single-item row. A dash means the implementation has no channel for that cell. Measured on MacBook M4 Pro (14 cores).

Two stages, because a oneshot's channel is consumed by the op rather than standing across the run. full-cycle creates, sends and receives on one thread, so construction is part of the op and allocation shows. handoff pre-creates every pair before the barrier and times a sending thread against a receiving one, which is the same accounting the other pages use.

fibre appears four times: fibre is the clonable oneshot(), fibre-exclusive the single-sender exclusive(), and fibre-pool and fibre-pool-host take their slots from a standing pool instead of allocating. kanal, flume, crossbeam, async-channel and std have no oneshot and are absent rather than approximated with a bounded(1), which is a standing channel that happens to hold one item. futures and async-oneshot have no blocking receive and sync-oneshot has no Future, so each of those runs one mode only.

Handoff rows carry a lower item ceiling than the rest of the arena, since every op needs its own pre-created channel and the item count is also the resident channel count.

sync

Stagefibrefibre-exclusivefibre-poolfibre-pool-hostlite-synconeshotsync-oneshottokio
full-cycle41.947.0118.6114.465.848.744.631.8
handoff82.8103.2189.7190.597.797.580.650.1

Unreliable, sample spread over 2x on a 1×1 cell where the rest of the matrix holds within a few percent: fibre-exclusive at handoff (2.8x, 37.6 to 104.5), lite-sync at handoff (2.8x, 77.3 to 214.0). Those medians do not support a comparison.

async

Stagefibrefibre-exclusivefibre-poolfibre-pool-hostasync-oneshotfutureslite-synconeshottokio
full-cycle42.952.4120.4110.653.237.759.945.639.0
handoff55.357.9129.6102.177.260.8184.279.142.5