smarm general benchmarks available parallelism: 1 threads ITERS=15 (+1 warmup, discarded) CHAIN_DEPTH=1000, YIELD_TASKS=200×1000, PRIME_N=400000/64 workers, PP_ROUNDS=1000 ================================================================================ chained_spawn: depth 1000 ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 1000 | 8950 | 8591 | 10655 smarm 1-thread | 1000 | 9688 | 8657 | 11720 tokio current_thread | 1000 | 123 | 123 | 256 tokio multi-thread | 1000 | 192 | 177 | 314 ================================================================================ yield_many: 200 tasks × 1000 yields ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 200000 | 42965 | 41667 | 44850 smarm 1-thread | 200000 | 42881 | 41634 | 48864 tokio current_thread | 200000 | 15112 | 14986 | 15484 tokio multi-thread | 200000 | 16006 | 15915 | 16647 ================================================================================ fan_out_compute: primes in [2, 400000) across 64 ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 33860 | 29931 | 29750 | 31707 smarm 1-thread | 33860 | 29977 | 29670 | 30996 tokio current_thread | 33860 | 28615 | 28441 | 30188 tokio multi-thread | 33860 | 34371 | 34330 | 35176 ================================================================================ ping_pong_oneshot: 1000 rounds ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 1000 | 16753 | 16498 | 18516 smarm 1-thread | 1000 | 16728 | 16599 | 16874 tokio current_thread | 1000 | 940 | 933 | 1037 tokio multi-thread | 1000 | 4317 | 4236 | 4427 smarm tokio-favored benchmarks available parallelism: 1 threads ITERS=15 (+1 warmup, discarded) STORM_BACKGROUND=8, STORM_SPAWN=10000, MPSC=32×10000, TIMER_ACTORS=10000 (1–10 ms), SCALING_N=400000/64 ================================================================================ spawn_storm_busy: 8 bg yielders + 10000 zero-work spawns ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 10000 | 132575 | 128629 | 136999 smarm 1-thread | 10000 | 130313 | 127372 | 157234 tokio current_thread | 10000 | 2689 | 2611 | 2833 tokio multi-thread | 10000 | 11337 | 4288 | 12635 ================================================================================ mpsc_contention: 32 producers × 10000 msgs → 1 consumer ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 320000 | 9122 | 9000 | 11033 smarm 1-thread | 320000 | 9143 | 9015 | 9333 tokio current_thread | 320000 | 17705 | 17250 | 18111 tokio multi-thread | 320000 | 18044 | 17621 | 19484 ================================================================================ many_timers: 10000 actors sleeping 1–10 ms ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 10000 | 141925 | 135531 | 188381 smarm 1-thread | 10000 | 139655 | 134291 | 146458 tokio current_thread | 10000 | 13837 | 13621 | 14877 tokio multi-thread | 10000 | 14992 | 14542 | 15237 ================================================================================ multi_thread_scaling: primes in [2, 400000) across 64 workers ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 33860 | 29687 | 29554 | 31408 tokio multi 1-thread | 33860 | 28963 | 28742 | 30236 smarm smarm-favored benchmarks available parallelism: 1 threads ITERS=15 (+1 warmup, discarded) RECURSE_DEPTH=500, HOT_YIELDS=500000×2, UNCONT_MSGS=1000000, PANIC_TASKS=10000 ================================================================================ deep_recursion: depth 500 ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 1 | 83 | 80 | 128 smarm 1-thread | 1 | 86 | 77 | 149 tokio current_thread | 1 | 25 | 25 | 50 tokio multi-thread | 1 | 53 | 47 | 84 ================================================================================ yield_in_hot_loop: 2 actors × 500000 yields (single thread) ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 1000000 | 197474 | 194313 | 201690 tokio current_thread | 1000000 | 149289 | 148575 | 154319 ================================================================================ uncontended_channel: 1→1, 1000000 msgs (single thread) ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 1000000 | 26884 | 26675 | 29436 tokio current_thread | 1000000 | 52594 | 51941 | 54495 ================================================================================ catch_unwind_panics: 10000 tasks, 50% panic ================================================================================ runtime | result | median µs | min µs | max µs -------------------------------------------------------------------------------- smarm 1-thread | 10000 | 148321 | 146050 | 152943 smarm 1-thread | 10000 | 147961 | 144521 | 152158 tokio current_thread | 10000 | 264487 | 260848 | 274838 tokio multi-thread | 10000 | 272103 | 265687 | 285209