Baseline benchmarks on my machine
This commit is contained in:
+11
-1
@@ -25,7 +25,17 @@ codegen-units = 1
|
||||
[[bench]]
|
||||
name = "primes"
|
||||
harness = false
|
||||
|
||||
|
||||
[[bench]]
|
||||
name = "multi_scheduler"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "general"
|
||||
harness = false
|
||||
|
||||
[[bench]]
|
||||
name = "smarm_favored"
|
||||
harness = false
|
||||
|
||||
|
||||
|
||||
+102
-140
@@ -2,223 +2,185 @@
|
||||
"chained_spawn": {
|
||||
"smarm 1-thread": {
|
||||
"result": 1000,
|
||||
"median": 8637,
|
||||
"min": 8553,
|
||||
"max": 8933
|
||||
"median": 9763,
|
||||
"min": 8852,
|
||||
"max": 10520
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 1000,
|
||||
"median": 23562,
|
||||
"min": 20515,
|
||||
"max": 24398
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 1000,
|
||||
"median": 124,
|
||||
"min": 124,
|
||||
"max": 153
|
||||
"median": 70,
|
||||
"min": 61,
|
||||
"max": 75
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 1000,
|
||||
"median": 188,
|
||||
"min": 183,
|
||||
"max": 229
|
||||
"median": 187,
|
||||
"min": 158,
|
||||
"max": 228
|
||||
}
|
||||
},
|
||||
"yield_many": {
|
||||
"smarm 1-thread": {
|
||||
"result": 200000,
|
||||
"median": 41622,
|
||||
"min": 41063,
|
||||
"max": 44973
|
||||
"median": 21704,
|
||||
"min": 20353,
|
||||
"max": 22053
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 200000,
|
||||
"median": 180752,
|
||||
"min": 148576,
|
||||
"max": 187771
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 200000,
|
||||
"median": 15085,
|
||||
"min": 15013,
|
||||
"max": 15274
|
||||
"median": 5816,
|
||||
"min": 5567,
|
||||
"max": 6278
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 200000,
|
||||
"median": 15964,
|
||||
"min": 15880,
|
||||
"max": 17959
|
||||
"median": 8259,
|
||||
"min": 7760,
|
||||
"max": 9610
|
||||
}
|
||||
},
|
||||
"fan_out_compute": {
|
||||
"smarm 1-thread": {
|
||||
"result": 33860,
|
||||
"median": 29727,
|
||||
"min": 29491,
|
||||
"max": 31634
|
||||
"median": 14009,
|
||||
"min": 13834,
|
||||
"max": 14274
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 33860,
|
||||
"median": 2839,
|
||||
"min": 2702,
|
||||
"max": 3019
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 33860,
|
||||
"median": 28503,
|
||||
"min": 28391,
|
||||
"max": 28866
|
||||
"median": 13083,
|
||||
"min": 12634,
|
||||
"max": 15737
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 33860,
|
||||
"median": 34542,
|
||||
"min": 34396,
|
||||
"max": 36111
|
||||
"median": 1538,
|
||||
"min": 1434,
|
||||
"max": 2201
|
||||
}
|
||||
},
|
||||
"ping_pong_oneshot": {
|
||||
"smarm 1-thread": {
|
||||
"result": 1000,
|
||||
"median": 16848,
|
||||
"min": 16633,
|
||||
"max": 17301
|
||||
"median": 18409,
|
||||
"min": 16381,
|
||||
"max": 21858
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 1000,
|
||||
"median": 44596,
|
||||
"min": 41804,
|
||||
"max": 48324
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 1000,
|
||||
"median": 879,
|
||||
"min": 868,
|
||||
"max": 973
|
||||
"median": 494,
|
||||
"min": 465,
|
||||
"max": 602
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 1000,
|
||||
"median": 4328,
|
||||
"min": 4223,
|
||||
"max": 4461
|
||||
}
|
||||
},
|
||||
"spawn_storm_busy": {
|
||||
"smarm 1-thread": {
|
||||
"result": 10000,
|
||||
"median": 130058,
|
||||
"min": 126790,
|
||||
"max": 134475
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 10000,
|
||||
"median": 2772,
|
||||
"min": 2641,
|
||||
"max": 4367
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 10000,
|
||||
"median": 7462,
|
||||
"min": 4469,
|
||||
"max": 12892
|
||||
}
|
||||
},
|
||||
"mpsc_contention": {
|
||||
"smarm 1-thread": {
|
||||
"result": 320000,
|
||||
"median": 9260,
|
||||
"min": 9095,
|
||||
"max": 10081
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 320000,
|
||||
"median": 17570,
|
||||
"min": 17213,
|
||||
"max": 18276
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 320000,
|
||||
"median": 17593,
|
||||
"min": 17452,
|
||||
"max": 19564
|
||||
}
|
||||
},
|
||||
"many_timers": {
|
||||
"smarm 1-thread": {
|
||||
"result": 10000,
|
||||
"median": 135806,
|
||||
"min": 132573,
|
||||
"max": 141651
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 10000,
|
||||
"median": 14462,
|
||||
"min": 13555,
|
||||
"max": 15457
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 10000,
|
||||
"median": 15011,
|
||||
"min": 14655,
|
||||
"max": 15368
|
||||
}
|
||||
},
|
||||
"multi_thread_scaling": {
|
||||
"smarm 1-thread": {
|
||||
"result": 33860,
|
||||
"median": 30029,
|
||||
"min": 29720,
|
||||
"max": 31351
|
||||
},
|
||||
"tokio multi 1-thread": {
|
||||
"result": 33860,
|
||||
"median": 28983,
|
||||
"min": 28908,
|
||||
"max": 29323
|
||||
"median": 10907,
|
||||
"min": 9582,
|
||||
"max": 12430
|
||||
}
|
||||
},
|
||||
"deep_recursion": {
|
||||
"smarm 1-thread": {
|
||||
"result": 1,
|
||||
"median": 83,
|
||||
"min": 78,
|
||||
"max": 587
|
||||
"median": 123,
|
||||
"min": 108,
|
||||
"max": 169
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 1,
|
||||
"median": 633,
|
||||
"min": 558,
|
||||
"max": 783
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 1,
|
||||
"median": 25,
|
||||
"min": 25,
|
||||
"max": 33
|
||||
"median": 12,
|
||||
"min": 11,
|
||||
"max": 14
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 1,
|
||||
"median": 59,
|
||||
"min": 47,
|
||||
"max": 205
|
||||
"median": 52,
|
||||
"min": 42,
|
||||
"max": 55
|
||||
}
|
||||
},
|
||||
"yield_in_hot_loop": {
|
||||
"smarm 1-thread": {
|
||||
"result": 1000000,
|
||||
"median": 188753,
|
||||
"min": 187007,
|
||||
"max": 194366
|
||||
"median": 82273,
|
||||
"min": 81870,
|
||||
"max": 86041
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 1000000,
|
||||
"median": 153929,
|
||||
"min": 152712,
|
||||
"max": 158749
|
||||
"median": 75353,
|
||||
"min": 71841,
|
||||
"max": 77573
|
||||
}
|
||||
},
|
||||
"uncontended_channel": {
|
||||
"smarm 1-thread": {
|
||||
"result": 1000000,
|
||||
"median": 26811,
|
||||
"min": 26498,
|
||||
"max": 29069
|
||||
"median": 9390,
|
||||
"min": 9331,
|
||||
"max": 12504
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 1000000,
|
||||
"median": 51888,
|
||||
"min": 51530,
|
||||
"max": 52708
|
||||
"median": 17007,
|
||||
"min": 16933,
|
||||
"max": 17657
|
||||
}
|
||||
},
|
||||
"catch_unwind_panics": {
|
||||
"smarm 1-thread": {
|
||||
"result": 10000,
|
||||
"median": 142215,
|
||||
"min": 140189,
|
||||
"max": 143570
|
||||
"median": 144807,
|
||||
"min": 138473,
|
||||
"max": 153664
|
||||
},
|
||||
"smarm 24-thread": {
|
||||
"result": 10000,
|
||||
"median": 267812,
|
||||
"min": 229587,
|
||||
"max": 288329
|
||||
},
|
||||
"tokio current_thread": {
|
||||
"result": 10000,
|
||||
"median": 682295,
|
||||
"min": 670281,
|
||||
"max": 700774
|
||||
"median": 11084,
|
||||
"min": 10904,
|
||||
"max": 12041
|
||||
},
|
||||
"tokio multi-thread": {
|
||||
"result": 10000,
|
||||
"median": 662688,
|
||||
"min": 641453,
|
||||
"max": 681868
|
||||
"median": 6029,
|
||||
"min": 5054,
|
||||
"max": 7216
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -272,6 +272,8 @@ fn bench_panic_smarm(threads: usize) -> (u64, u128) {
|
||||
let err = Arc::new(AtomicU64::new(0));
|
||||
let ok2 = ok.clone();
|
||||
let err2 = err.clone();
|
||||
let prev_hook = std::panic::take_hook();
|
||||
std::panic::set_hook(Box::new(|_| {}));
|
||||
let start = Instant::now();
|
||||
smarm::runtime::init(bench_cfg(threads)).run(move || {
|
||||
let mut handles = Vec::new();
|
||||
@@ -289,6 +291,7 @@ fn bench_panic_smarm(threads: usize) -> (u64, u128) {
|
||||
}
|
||||
}
|
||||
});
|
||||
std::panic::set_hook(prev_hook);
|
||||
let total = ok.load(Ordering::Relaxed) + err.load(Ordering::Relaxed);
|
||||
(total, start.elapsed().as_micros())
|
||||
}
|
||||
@@ -299,6 +302,8 @@ fn bench_panic_tokio_current() -> (u64, u128) {
|
||||
let ok2 = ok.clone();
|
||||
let err2 = err.clone();
|
||||
let rt = tokio::runtime::Builder::new_current_thread().build().unwrap();
|
||||
let prev_hook = std::panic::take_hook();
|
||||
std::panic::set_hook(Box::new(|_| {}));
|
||||
let start = Instant::now();
|
||||
let local = tokio::task::LocalSet::new();
|
||||
local.block_on(&rt, async move {
|
||||
@@ -317,6 +322,7 @@ fn bench_panic_tokio_current() -> (u64, u128) {
|
||||
}
|
||||
}
|
||||
});
|
||||
std::panic::set_hook(prev_hook);
|
||||
let total = ok.load(Ordering::Relaxed) + err.load(Ordering::Relaxed);
|
||||
(total, start.elapsed().as_micros())
|
||||
}
|
||||
@@ -330,6 +336,8 @@ fn bench_panic_tokio_multi() -> (u64, u128) {
|
||||
.worker_threads(available_threads())
|
||||
.build()
|
||||
.unwrap();
|
||||
let prev_hook = std::panic::take_hook();
|
||||
std::panic::set_hook(Box::new(|_| {}));
|
||||
let start = Instant::now();
|
||||
rt.block_on(async move {
|
||||
let mut handles = Vec::new();
|
||||
@@ -347,6 +355,7 @@ fn bench_panic_tokio_multi() -> (u64, u128) {
|
||||
}
|
||||
}
|
||||
});
|
||||
std::panic::set_hook(prev_hook);
|
||||
let total = ok.load(Ordering::Relaxed) + err.load(Ordering::Relaxed);
|
||||
(total, start.elapsed().as_micros())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user