Mercurial > hg
changeset 18080:486bfb200b3f
perf: add command to test performance of membership in ancestor set
The new command, perfancestorset, takes an argument denoting which revset to
test the membership of.
Currently this runs through all the ancestors and converts them into a set.
The primary purpose of having this is to compare this approach, currently used
in several places, against the upcoming lazy approach.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Fri, 14 Dec 2012 10:23:18 -0800 |
parents | b3ba69692f8a |
children | f88c60e740a1 |
files | contrib/perf.py |
diffstat | 1 files changed, 10 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/perf.py Tue Dec 11 14:47:33 2012 -0800 +++ b/contrib/perf.py Fri Dec 14 10:23:18 2012 -0800 @@ -78,6 +78,15 @@ pass timer(d) +def perfancestorset(ui, repo, revset): + revs = repo.revs(revset) + heads = repo.changelog.headrevs() + def d(): + s = set(repo.changelog.ancestors(heads)) + for rev in revs: + rev in s + timer(d) + def perfdirstate(ui, repo): "a" in repo.dirstate def d(): @@ -253,6 +262,7 @@ 'perfheads': (perfheads, []), 'perftags': (perftags, []), 'perfancestors': (perfancestors, []), + 'perfancestorset': (perfancestorset, [], "REVSET"), 'perfdirstate': (perfdirstate, []), 'perfdirstatedirs': (perfdirstate, []), 'perfdirstatewrite': (perfdirstatewrite, []),