From 88855b5d95be04747ec0ff67d8b33dfde3189641 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Sat, 2 Jan 2021 11:27:16 +0100 Subject: [PATCH] fix(test_util): make hyper server single-threaded (#8951) Use Tokio's single-threaded scheduler. The hyper server is used as a point of comparison for the (single-threaded!) benchmarks in cli/bench. We're not comparing apples to apples if we use the default multi-threaded scheduler. This drops the requests/sec from 284k to 130k on my 12 core Ryzen 5 system. That still leaves a 50k gap for us to close. Working on it! --- test_util/src/lib.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs index 03b830783d..a91416bb57 100644 --- a/test_util/src/lib.rs +++ b/test_util/src/lib.rs @@ -722,7 +722,10 @@ async fn wrap_main_https_server() { } } -#[tokio::main] +// Use the single-threaded scheduler. The hyper server is used as a point of +// comparison for the (single-threaded!) benchmarks in cli/bench. We're not +// comparing apples to apples if we use the default multi-threaded scheduler. +#[tokio::main(basic_scheduler)] pub async fn run_all_servers() { if let Some(port) = env::args().nth(1) { return hyper_hello(port.parse::().unwrap()).await;