contrib/perf.py
changeset 40680 9d88ae5c635b
parent 40679 20d2fd6036ed
child 40681 c0a1686d9391
--- 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