annotate contrib/revsetbenchmarks.txt @ 24923:e5f166961123

revset: narrow the subset using smartset operation in roots() We were manually creating a base with explicit subset testing. We should let smartset magic happen and optimise that logic if needed. benchmark show some massive speedup when "parents set" is huge and "subset" is small. revset: 42:68 and roots(42:tip) 0) wall 0.011322 comb 0.010000 user 0.010000 sys 0.000000 (best of 161) 1) wall 0.002282 comb 0.010000 user 0.010000 sys 0.000000 (best of 1082) Minor speedup in simple case (were fullreposet helps) revset: roots(0::tip) 0) wall 0.095688 comb 0.100000 user 0.100000 sys 0.000000 (best of 85) 1) wall 0.084448 comb 0.080000 user 0.080000 sys 0.000000 (best of 95) revset: roots((0:tip)::) 0) wall 0.146752 comb 0.140000 user 0.140000 sys 0.000000 (best of 58) 1) wall 0.143538 comb 0.140000 user 0.140000 sys 0.000000 (best of 59) And small overhead then the "parents set" is fairly complicated (transforming it into a revset once and for all appears to be faster). revset: roots((tip~100::) - (tip~100::tip)) 0) wall 0.004652 comb 0.010000 user 0.010000 sys 0.000000 (best of 544) 1) wall 0.004878 comb 0.010000 user 0.010000 sys 0.000000 (best of 479) revset: roots((0::) - (0::tip)) 0) wall 0.146587 comb 0.150000 user 0.150000 sys 0.000000 (best of 53) 1) wall 0.157192 comb 0.160000 user 0.160000 sys 0.000000 (best of 53) revset: first(roots((0::) - (0::tip))) 0) wall 0.152924 comb 0.150000 user 0.150000 sys 0.000000 (best of 57) 1) wall 0.153192 comb 0.160000 user 0.160000 sys 0.000000 (best of 55)
author Pierre-Yves David <pierre-yves.david@fb.com>
date Sat, 11 Oct 2014 01:17:40 -0700
parents ace8320156ef
children 34d8d4930c88
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
1 all()
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
2 draft()
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
3 ::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
4 draft() and ::tip
21285
7078ce067367 revsetbenchmark: add `::tip and draft()` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21204
diff changeset
5 ::tip and draft()
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
6 0::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
7 roots(0::tip)
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
8 author(lmoscovicz)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
9 author(mpm)
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
10 author(lmoscovicz) or author(mpm)
21295
883e268cb860 revsetbenchmark: add `author(mpm) or author(lmoscovicz)` to the canonical list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21285
diff changeset
11 author(mpm) or author(lmoscovicz)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
12 tip:0
20754
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
13 max(tip:0)
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
14 min(0:tip)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
15 0::
20754
f15ff553b762 revset: changed minrev and maxrev implementations to use ordered sets
Lucas Moscovicz <lmoscovicz@fb.com>
parents: 20744
diff changeset
16 min(0::)
22556
480a24ad9f77 revsetbenchmark: allow comments ('#' prefix) in the revset input
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22458
diff changeset
17 # those two `roots(...)` inputs are close to what phase movement use.
20894
04e1596d5dbd revset: improve _descendants performance
Durham Goode <durham@fb.com>
parents: 20861
diff changeset
18 roots((tip~100::) - (tip~100::tip))
22556
480a24ad9f77 revsetbenchmark: allow comments ('#' prefix) in the revset input
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22458
diff changeset
19 roots((0::) - (0::tip))
24923
e5f166961123 revset: narrow the subset using smartset operation in roots()
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22557
diff changeset
20 42:68 and roots(42:tip)
20861
c2a81aa19980 revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20777
diff changeset
21 ::p1(p1(tip))::
21204
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
22 public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
23 :10000 and public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
24 draft()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
25 :10000 and draft()
21546
cb0e28d61905 revset-benchmark: add max(::(tip~20) - obsolete())
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21295
diff changeset
26 max(::(tip~20) - obsolete())
21939
f486001f9d6f revset: optimize baseset.__sub__ (issue4313)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21546
diff changeset
27 roots((0:tip)::)
22312
8b980fbbd6dc revsetbenchmark: add revset with lazyset subtraction
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21939
diff changeset
28 (not public() - obsolete())
22451
186fd06283b4 revset: lower weight for _intlist function
Durham Goode <durham@fb.com>
parents: 22450
diff changeset
29 (_intlist('20000\x0020001')) and merge()
22450
95af98616aa7 revset: make parents() O(number of parents)
Durham Goode <durham@fb.com>
parents: 22449
diff changeset
30 parents(20000)
22449
da05fe01170b revset: make descendants() lazier
Durham Goode <durham@fb.com>
parents: 22312
diff changeset
31 (20000::) - (20000)
22557
ace8320156ef revsetbenchmark: add a rebase-related revset to the benchmark list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22556
diff changeset
32 # The one below is used by rebase
ace8320156ef revsetbenchmark: add a rebase-related revset to the benchmark list
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22556
diff changeset
33 (children(ancestor(tip~5, tip)) and ::(tip~5))::