From 0df5b446eba881a404579f5c433a78c614002879 Mon Sep 17 00:00:00 2001 From: Zooko O'Whielacronx <zooko@zooko.com> Date: Mon, 6 Jul 2009 20:30:35 -0700 Subject: [PATCH] directories: make the profiling behavior of bench_dirnode.py accessible by adding '--profile' to the cmdline --- src/allmydata/test/bench_dirnode.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/allmydata/test/bench_dirnode.py b/src/allmydata/test/bench_dirnode.py index e72fbbc0..1d5d5d66 100644 --- a/src/allmydata/test/bench_dirnode.py +++ b/src/allmydata/test/bench_dirnode.py @@ -1,4 +1,4 @@ -import hotshot.stats, os, random +import hotshot.stats, os, random, sys from pyutil import benchutil, randutil # http://allmydata.org/trac/pyutil @@ -88,13 +88,15 @@ def unpack(N): def unpack_and_repack(N): return testdirnode._pack_contents(testdirnode._unpack_contents(packstr)) +PROF_FILE_NAME="bench_dirnode.prof" + def run_benchmarks(profile=False): for (func, initfunc) in [(unpack, init_for_unpack), (pack, init_for_pack), (unpack_and_repack, init_for_unpack)]: print "benchmarking %s" % (func,) - benchutil.bench(unpack_and_repack, initfunc=init_for_unpack, TOPXP=12, profile=profile, profresults="bench_dirnode.prof") + benchutil.bench(unpack_and_repack, initfunc=init_for_unpack, TOPXP=12, profile=profile, profresults=PROF_FILE_NAME) def print_stats(): - s = hotshot.stats.load("bench_dirnode.prof") + s = hotshot.stats.load(PROF_FILE_NAME) s.strip_dirs().sort_stats("time").print_stats(32) def prof_benchmarks(): @@ -102,6 +104,10 @@ def prof_benchmarks(): run_benchmarks(profile=True) if __name__ == "__main__": - run_benchmarks() - # prof_benchmarks() - # print_stats() + if '--profile' in sys.argv: + if os.path.exists(PROF_FILE_NAME): + print "WARNING: profiling results file '%s' already exists -- the profiling results from this run will be added into the profiling results stored in that file and then the sum of them will be printed out after this run." + prof_benchmarks() + print_stats() + else: + run_benchmarks() -- 2.45.2