# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1542711320 0 # Tue Nov 20 10:55:20 2018 +0000 # Node ID 4394597460a13bcd6fc2b4d88826f9399ac27de0 # Parent 568c6a0abb650b9c0949e2231f0d8ff51cf40ece # EXP-Topic perf-tags # Available At https://bitbucket.org/octobus/mercurial-devel/ # hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 4394597460a1 perf: add a `clear-revlogs` flag to `perfbookmarks`
This flag (off by default) makes it possible to enable the refresh of the changelog and revlog. This is useful to check for costly side effects of bookmark loading. Usually, these side effects are shared with other logics (eg: tags). example output in my mercurial repo (with 1 bookmark, so not a great example): $ hg perfbookmarks ! wall 0.000044 $ hg perfbookmarks --clear-revlogs ! wall 0.001380 diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -583,13 +583,19 @@ def perfancestorset(ui, repo, revset, ** timer(d) fm.end() -@command(b'perfbookmarks', formatteropts) +@command(b'perfbookmarks', formatteropts + + [ + (b'', b'clear-revlogs', False, 'refresh changelog and manifest'), + ]) def perfbookmarks(ui, repo, **opts): """benchmark parsing bookmarks from disk to memory""" opts = _byteskwargs(opts) timer, fm = gettimer(ui, opts) + clearrevlogs = opts['clear_revlogs'] def s(): + if clearrevlogs: + clearchangelog(repo) clearfilecache(repo, b'_bookmarks') def d(): repo._bookmarks _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel