Mercurial > hg-stable
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 |
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)):: |