From 6605055b3d34a240951538f76e2fd8d516305d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sun, 28 Nov 2021 01:05:52 +0100 Subject: [PATCH] udp load test: improve statistics code --- aquatic_udp_load_test/src/main.rs | 54 +++++++++++++++---------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/aquatic_udp_load_test/src/main.rs b/aquatic_udp_load_test/src/main.rs index cb1131e..c677477 100644 --- a/aquatic_udp_load_test/src/main.rs +++ b/aquatic_udp_load_test/src/main.rs @@ -115,7 +115,7 @@ fn monitor_statistics(state: LoadTestState, config: &Config) { let mut last = start_time; - loop { + let time_elapsed = loop { thread::sleep(Duration::from_secs(interval)); let requests = fetch_and_reset(&state.statistics.requests); @@ -164,33 +164,33 @@ fn monitor_statistics(state: LoadTestState, config: &Config) { let time_elapsed = start_time.elapsed(); if config.duration != 0 && time_elapsed >= duration { - let len = report_avg_connect.len() as f64; - - let avg_connect: f64 = report_avg_connect.into_iter().sum::() / len; - let avg_announce: f64 = report_avg_announce.into_iter().sum::() / len; - let avg_scrape: f64 = report_avg_scrape.into_iter().sum::() / len; - let avg_error: f64 = report_avg_error.into_iter().sum::() / len; - - let avg_total = avg_connect + avg_announce + avg_scrape + avg_error; - - println!( - concat!( - "\n# aquatic load test report\n\n", - "Test ran for {} seconds.\n", - "Average responses per second: {:.2}\n\nConfig: {:#?}\n" - ), - time_elapsed.as_secs(), - avg_total, - config - ); - println!(" - Connect responses: {:.2}", avg_connect); - println!(" - Announce responses: {:.2}", avg_announce); - println!(" - Scrape responses: {:.2}", avg_scrape); - println!(" - Error responses: {:.2}", avg_error); - - break; + break time_elapsed; } - } + }; + + let len = report_avg_connect.len() as f64; + + let avg_connect: f64 = report_avg_connect.into_iter().sum::() / len; + let avg_announce: f64 = report_avg_announce.into_iter().sum::() / len; + let avg_scrape: f64 = report_avg_scrape.into_iter().sum::() / len; + let avg_error: f64 = report_avg_error.into_iter().sum::() / len; + + let avg_total = avg_connect + avg_announce + avg_scrape + avg_error; + + println!( + concat!( + "\n# aquatic load test report\n\n", + "Test ran for {} seconds.\n", + "Average responses per second: {:.2}\n\nConfig: {:#?}\n" + ), + time_elapsed.as_secs(), + avg_total, + config + ); + println!(" - Connect responses: {:.2}", avg_connect); + println!(" - Announce responses: {:.2}", avg_announce); + println!(" - Scrape responses: {:.2}", avg_scrape); + println!(" - Error responses: {:.2}", avg_error); } fn fetch_and_reset(atomic_usize: &AtomicUsize) -> f64 {