[PATCH 6 of 6] perftest: allow selection of volatile set to benchmark
pierre-yves.david at logilab.fr
pierre-yves.david at logilab.fr
Fri Jan 4 12:28:53 CST 2013
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at logilab.fr>
# Date 1357323872 -3600
# Node ID 8d495cfd20eaf9983c5e5be2936dadc3472506fa
# Parent c5a98600c967a317ea290a7a78ce9cfce614842b
perftest: allow selection of volatile set to benchmark
This helps when you focus on a subset of the volatile chain.
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -276,11 +276,11 @@ def perfrevset(ui, repo, expr, clear=Fal
repo.invalidatevolatilesets()
repo.revs(expr)
timer(d)
@command('perfvolatilesets')
-def perfvolatilesets(ui, repo):
+def perfvolatilesets(ui, repo, *names):
"""benchmark the computation of various volatile set
Volatile set computes element related to filtering and obsolescence."""
repo = repo.unfiltered()
@@ -288,16 +288,24 @@ def perfvolatilesets(ui, repo):
def d():
repo.invalidatevolatilesets()
obsolete.getrevs(repo, name)
return d
- for name in sorted(obsolete.cachefuncs):
+ allobs = sorted(obsolete.cachefuncs)
+ if names:
+ allobs = [n for n in allobs if n in names]
+
+ for name in allobs:
timer(getobs(name), title=name)
def getfiltered(name):
def d():
repo.invalidatevolatilesets()
repoview.filteredrevs(repo, name)
return d
- for name in sorted(repoview.filtertable):
+ allfilter = sorted(repoview.filtertable)
+ if names:
+ allfilter = [n for n in allfilter if n in names]
+
+ for name in allfilter:
timer(getfiltered(name), title=name)
More information about the Mercurial-devel
mailing list