[PATCH 1 of 5] perf: move some of the perftags benchmark to the setup function

Boris Feld boris.feld at octobus.net
Tue Nov 20 19:18:05 UTC 2018


# HG changeset patch
# User Boris Feld <boris.feld at octobus.net>
# Date 1542708625 0
#      Tue Nov 20 10:10:25 2018 +0000
# Node ID 4ea6bac93535a7b6f69df014f738a45104bab934
# Parent  b56094b2c5263006b68997713825fa9647a7431c
# EXP-Topic perf-tags
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 4ea6bac93535
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
@@ -539,14 +539,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)


More information about the Mercurial-devel mailing list