--- a/contrib/perf.py Mon Nov 19 23:02:29 2018 +0000
+++ b/contrib/perf.py Mon Nov 19 22:55:07 2018 +0000
@@ -275,7 +275,7 @@
displayall = ui.configbool(b"perf", b"all-timing", False)
return functools.partial(_timer, fm, displayall=displayall), fm
-def stub_timer(fm, func, title=None):
+def stub_timer(fm, func, setup=None, title=None):
func()
@contextlib.contextmanager
@@ -289,12 +289,14 @@
a, b = ostart, ostop
r.append((cstop - cstart, b[0] - a[0], b[1]-a[1]))
-def _timer(fm, func, title=None, displayall=False):
+def _timer(fm, func, setup=None, title=None, displayall=False):
gc.collect()
results = []
begin = util.timer()
count = 0
while True:
+ if setup is not None:
+ setup()
with timeone() as item:
r = func()
count += 1