summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2021-01-02 11:27:16 +0100
committerGitHub <noreply@github.com>2021-01-02 11:27:16 +0100
commit88855b5d95be04747ec0ff67d8b33dfde3189641 (patch)
treea44fcb6e3b49e21770c11cd9d4fe0a6edc1c48f6
parent012f99bd9a0463813653bf8438e09b3247395984 (diff)
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!
-rw-r--r--test_util/src/lib.rs5
1 files changed, 4 insertions, 1 deletions
diff --git a/test_util/src/lib.rs b/test_util/src/lib.rs
index 03b830783..a91416bb5 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::<u16>().unwrap()).await;