aboutsummaryrefslogtreecommitdiff
path: root/bench.py
diff options
context:
space:
mode:
Diffstat (limited to 'bench.py')
-rwxr-xr-xbench.py22
1 files changed, 21 insertions, 1 deletions
diff --git a/bench.py b/bench.py
index b7b6592..1ecec73 100755
--- a/bench.py
+++ b/bench.py
@@ -1,21 +1,41 @@
#!/usr/bin/env python3
+import argparse
+
from bench_loop import loop
from bench_conprod import conprod
from bench_mysql import mysql
+parser = argparse.ArgumentParser(description="benchmark memory allocators")
+parser.add_argument("-s", "--save", help="save benchmark results to disk", action='store_true')
+parser.add_argument("-l", "--load", help="load benchmark results from disk", action='store_true')
+parser.add_argument("-r", "--runs", help="how often the benchmarks run", default=3)
+
+
benchmarks = [loop, conprod, mysql]
def main():
+ args = parser.parse_args()
+ print (args)
+
for bench in benchmarks:
+ if args.load:
+ bench.load()
+
print("Preparing", bench.name)
if not bench.prepare():
continue
+
print("Running", bench.name)
- if not bench.run(runs=1):
+ if not bench.run(runs=args.runs):
continue
+
+ if args.save:
+ bench.save()
+
print("Summarizing", bench.name)
bench.summary()
+
if hasattr(bench, "cleanup"):
print("Cleaning after", bench.name)
bench.cleanup()