perf: use the new setup function in "perfbookmarks"
This command was picked arbitrarily to display the usefulness of the new
feature. In my Mercurial repository (with very few bookmarks), moving cache
cleanup in the dedicated setup function has a visible and stable effect on
the benchmark number.
before: ! wall 0.000061 comb 0.000000 user 0.000000 sys 0.000000 (median of 40837)
after: ! wall 0.000058 comb 0.000000 user 0.000000 sys 0.000000 (median of 40500)
--- a/contrib/perf.py Mon Nov 19 22:55:07 2018 +0000
+++ b/contrib/perf.py Mon Nov 19 23:14:46 2018 +0000
@@ -576,10 +576,12 @@
"""benchmark parsing bookmarks from disk to memory"""
opts = _byteskwargs(opts)
timer, fm = gettimer(ui, opts)
- def d():
+
+ def s():
clearfilecache(repo, b'_bookmarks')
+ def d():
repo._bookmarks
- timer(d)
+ timer(d, setup=s)
fm.end()
@command(b'perfbundleread', formatteropts, b'BUNDLE')