##// END OF EJS Templates
revset: make descendants() lazier...
revset: make descendants() lazier Previously descendants() would force the provided subset to become a set. In the case of revsets like '(%ld::) - (%ld)' (as used by histedit) this would force the '- (%ld)' set to be evaluated, which produced a set containing every commit in the repo (except %ld). This takes 0.6s on large repos. This changes descendants to trust the subset to implement __contains__ efficiently, which improves the above revset to 0.16s. Shaving 0.4 seconds off of histedit. revset #27: (20000::) - (20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.023640 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.019589 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) This commit removes the final revset related perf hotspot from histedit. Combined with the previous two patches, they shave a little over 3 seconds off histedit on large repos.

File last commit:

r22449:da05fe01 default
r22449:da05fe01 default
Show More
revsetbenchmarks.txt
26 lines | 419 B | text/plain | TextLexer
/ contrib / revsetbenchmarks.txt
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 all()
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 draft()
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 ::tip
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 draft() and ::tip
Pierre-Yves David
revsetbenchmark: add `::tip and draft()` to the canonical list...
r21285 ::tip and draft()
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 0::tip
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 roots(0::tip)
author(lmoscovicz)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 author(mpm)
Lucas Moscovicz
contrib: added revset examples for benchmarking performance...
r20744 author(lmoscovicz) or author(mpm)
Pierre-Yves David
revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list...
r21295 author(mpm) or author(lmoscovicz)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 tip:0
Lucas Moscovicz
revset: changed minrev and maxrev implementations to use ordered sets...
r20754 max(tip:0)
min(0:tip)
Pierre-Yves David
benchmark-revset: add full version of benchmarked revset...
r20777 0::
Lucas Moscovicz
revset: changed minrev and maxrev implementations to use ordered sets...
r20754 min(0::)
Durham Goode
revset: improve _descendants performance...
r20894 roots((tip~100::) - (tip~100::tip))
Gregory Szorc
revsetbenchmark: add entry for ::rev::...
r20861 ::p1(p1(tip))::
Pierre-Yves David
revset: inline spanset containment check (fix perf regression)...
r21204 public()
:10000 and public()
draft()
:10000 and draft()
Pierre-Yves David
revset-benchmark: add max(::(tip~20) - obsolete())...
r21546 max(::(tip~20) - obsolete())
Gregory Szorc
revset: optimize baseset.__sub__ (issue4313)...
r21939 roots((0:tip)::)
Gregory Szorc
revsetbenchmark: add revset with lazyset subtraction...
r22312 (not public() - obsolete())
Durham Goode
revset: make descendants() lazier...
r22449 (20000::) - (20000)