benches: baseline results
Two compile fixes: - tokio_favored.rs bench_mpsc_smarm: consumer spawn closure returned u64 via bare 'count' tail expression; smarm::Runtime::run() requires FnOnce()->(). Fixed to 'let _ = count;'. Same fix on the consumer.join() call site. - smarm_favored.rs bench_unc_smarm: same pattern, same fix. Baseline run: Intel Xeon @ 2.80GHz, 1 core, kernel 6.18.5, rustc 1.95.0, smarm 0.3.0, no RUSTFLAGS. Single-CPU sandbox — N-thread rows identical to 1-thread; scaling sweep limited to 1 thread. Notable findings: - deep_recursion: tokio wins (22 vs 62 us); mmap stack alloc cost dominates for single-use actors at depth 500. - yield_in_hot_loop: tokio wins (138 vs 182 ms); smarm mutex overhead on yield_now exceeds expected naked-switch advantage on 1 CPU. - mpsc_contention/uncontended_channel/catch_unwind_panics: smarm wins as predicted. - spawn_storm_busy: smarm 47x slower; global mutex saturated by bg yielders.
This commit is contained in:
34
benches/baseline-output/multi_scheduler.txt
Normal file
34
benches/baseline-output/multi_scheduler.txt
Normal file
@@ -0,0 +1,34 @@
|
||||
smarm multi-scheduler benchmarks
|
||||
available parallelism: 1 threads
|
||||
PRIME_N=400000, WORKERS=64, PING_ROUNDS=10000, SPAWN_COUNT=1000
|
||||
|
||||
================================================================================
|
||||
Fan-out/fan-in: count primes in [2, 400000) across 64 workers
|
||||
================================================================================
|
||||
runtime | result | median µs | min µs | max µs
|
||||
--------------------------------------------------------------------------------
|
||||
baseline (serial) | 33860 | 18581 | 18519 | 18905
|
||||
smarm single-thread | 33860 | 19467 | 19354 | 22082
|
||||
smarm 1-thread | 33860 | 19345 | 19287 | 19653
|
||||
tokio current_thread | 33860 | 18681 | 18591 | 18982
|
||||
tokio multi-thread | 33860 | 18948 | 18726 | 19212
|
||||
|
||||
================================================================================
|
||||
Ping-pong: 10000 round-trips between two actors
|
||||
================================================================================
|
||||
runtime | result | median µs | min µs | max µs
|
||||
--------------------------------------------------------------------------------
|
||||
smarm single-thread | 10000 | 2547 | 2473 | 2841
|
||||
smarm 1-thread | 10000 | 2546 | 2518 | 2702
|
||||
tokio current_thread | 10000 | 1221 | 1168 | 1366
|
||||
tokio multi-thread | 10000 | 1487 | 1316 | 2331
|
||||
|
||||
================================================================================
|
||||
Spawn throughput: 1000 actors spawned and joined
|
||||
================================================================================
|
||||
runtime | result | median µs | min µs | max µs
|
||||
--------------------------------------------------------------------------------
|
||||
smarm single-thread | 1000 | 8934 | 8066 | 12204
|
||||
smarm 1-thread | 1000 | 8102 | 8041 | 10849
|
||||
tokio current_thread | 1000 | 212 | 210 | 331
|
||||
tokio multi-thread | 1000 | 330 | 301 | 604
|
||||
Reference in New Issue
Block a user