aboutsummaryrefslogtreecommitdiff
path: root/scripts/simplebench/simplebench.py
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2021-03-04 11:10:17 +0300
committerVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2021-05-04 11:37:26 +0300
commit8c8407fe4525151e3c396adc667e1d4b0aab2c99 (patch)
tree6166ebcc9da95069934ebf08bca57f109ca8f1c9 /scripts/simplebench/simplebench.py
parent8fa4ee1b00e97bfac21550f1ac5b506a94ce7ba4 (diff)
simplebench/bench-backup: add --drop-caches argument
Add an option to drop caches before each test run. It may probably improve reliability of results when testing in cached mode. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Diffstat (limited to 'scripts/simplebench/simplebench.py')
-rw-r--r--scripts/simplebench/simplebench.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/scripts/simplebench/simplebench.py b/scripts/simplebench/simplebench.py
index 27bc4d4715..8efca2af98 100644
--- a/scripts/simplebench/simplebench.py
+++ b/scripts/simplebench/simplebench.py
@@ -19,11 +19,17 @@
#
import statistics
+import subprocess
import time
+def do_drop_caches():
+ subprocess.run('sync; echo 3 > /proc/sys/vm/drop_caches', shell=True,
+ check=True)
+
+
def bench_one(test_func, test_env, test_case, count=5, initial_run=True,
- slow_limit=100):
+ slow_limit=100, drop_caches=False):
"""Benchmark one test-case
test_func -- benchmarking function with prototype
@@ -40,6 +46,7 @@ def bench_one(test_func, test_env, test_case, count=5, initial_run=True,
initial_run -- do initial run of test_func, which don't get into result
slow_limit -- stop at slow run (that exceedes the slow_limit by seconds).
(initial run is not measured)
+ drop_caches -- drop caches before each run
Returns dict with the following fields:
'runs': list of test_func results
@@ -53,6 +60,7 @@ def bench_one(test_func, test_env, test_case, count=5, initial_run=True,
"""
if initial_run:
print(' #initial run:')
+ do_drop_caches()
print(' ', test_func(test_env, test_case))
runs = []
@@ -60,6 +68,7 @@ def bench_one(test_func, test_env, test_case, count=5, initial_run=True,
t = time.time()
print(' #run {}'.format(i+1))
+ do_drop_caches()
res = test_func(test_env, test_case)
print(' ', res)
runs.append(res)