[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