diff options
author | Vladimir Sementsov-Ogievskiy | 2021-03-04 09:10:17 +0100 |
---|---|---|
committer | Vladimir Sementsov-Ogievskiy | 2021-05-04 10:37:26 +0200 |
commit | 8c8407fe4525151e3c396adc667e1d4b0aab2c99 (patch) | |
tree | 6166ebcc9da95069934ebf08bca57f109ca8f1c9 /scripts/simplebench/simplebench.py | |
parent | simplebench/bench-backup: add --count and --no-initial-run (diff) | |
download | qemu-8c8407fe4525151e3c396adc667e1d4b0aab2c99.tar.gz qemu-8c8407fe4525151e3c396adc667e1d4b0aab2c99.tar.xz qemu-8c8407fe4525151e3c396adc667e1d4b0aab2c99.zip |
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) |