diff options
author | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2021-03-04 11:10:17 +0300 |
---|---|---|
committer | Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> | 2021-05-04 11:37:26 +0300 |
commit | 8c8407fe4525151e3c396adc667e1d4b0aab2c99 (patch) | |
tree | 6166ebcc9da95069934ebf08bca57f109ca8f1c9 /scripts/simplebench/simplebench.py | |
parent | 8fa4ee1b00e97bfac21550f1ac5b506a94ce7ba4 (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.py | 11 |
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) |