diff --git a/scripts/benchmark/benchmark_requests.py b/scripts/benchmark/benchmark_requests.py index 8098da6..63b1e3d 100644 --- a/scripts/benchmark/benchmark_requests.py +++ b/scripts/benchmark/benchmark_requests.py @@ -2,6 +2,8 @@ import argparse from concurrent.futures import ThreadPoolExecutor, as_completed +from datetime import datetime +from pathlib import Path from tqdm.auto import tqdm from util import make_request @@ -123,14 +125,28 @@ else: success.append(0) - outfile = ( - output - if output - else ( - f"benchmark_[num_requests={num_requests}]_[max_workers={max_workers}]_" - f"[parallel={parallel}]_[route={route}]_[timeout={timeout}].csv" + timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") + + results_dir = Path("benchmark") / "results" + if not results_dir.exists(): + results_dir.mkdir(parents=True, exist_ok=True) + + if output: + outfile = Path(output) + else: + filename = ( + f"benchmark_[t={timestamp}]" + f"_[n={num_requests}]" + f"_[w={max_workers}]" + f"_[r={route}]" + f"_[execution_mode={'par' if parallel else 'seq'}]" + ".csv" ) - ) + outfile = results_dir / filename + + parent_dir = outfile.parent + if not parent_dir.exists(): + parent_dir.mkdir(parents=True, exist_ok=True) with open( outfile, @@ -139,6 +155,7 @@ f.write("status,time\n") f.writelines(f"{s},{t}\n" for s, t in zip(success, times, strict=False)) + print(f"Results saved to: {outfile}") print(f"Benchmark completed. Successful requests: {sum(success)} out of {len(success)}") print(f"Average time per request: {sum(times) / len(times):.2f} seconds") print(f"Total time taken: {sum(times):.2f} seconds")