# HG changeset patch # User Boris Feld # Date 2018-11-20 10:10:25 # Node ID 4369c00a8ee168565fba97112283bbc00be8ce44 # Parent c0a1686d93913f477e3b9af4a5d6de3cf84f0fc9 perf: move some of the perftags benchmark to the setup function Creating fresh objects and clearing the cache should not be part of the timing. before: ! wall 0.020851 comb 0.020000 user 0.020000 sys 0.000000 (median of 138) after: ! wall 0.018740 comb 0.020000 user 0.020000 sys 0.000000 (median of 141) diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -537,14 +537,15 @@ def perftags(ui, repo, **opts): timer, fm = gettimer(ui, opts) svfs = getsvfs(repo) repocleartagscache = repocleartagscachefunc(repo) - def t(): + def s(): repo.changelog = mercurial.changelog.changelog(svfs) rootmanifest = mercurial.manifest.manifestrevlog(svfs) repo.manifestlog = mercurial.manifest.manifestlog(svfs, repo, rootmanifest) repocleartagscache() + def t(): return len(repo.tags()) - timer(t) + timer(t, setup=s) fm.end() @command(b'perfancestors', formatteropts)