contrib/revsetbenchmarks.txt
author Gregory Szorc <gregory.szorc@gmail.com>
Thu, 24 Jul 2014 12:12:12 -0700
branchstable
changeset 21939 f486001f9d6f
parent 21546 cb0e28d61905
child 22312 8b980fbbd6dc
permissions -rw-r--r--
revset: optimize baseset.__sub__ (issue4313) dd716807fd23 regressed performance of baseset.__sub__ by introducing a lazyset. This patch restores that lost performance by eagerly evaluating baseset.__sub__ if the other set is a baseset. revsetbenchmark.py results impacted by this change: revset #6: roots(0::tip) 0) wall 2.923473 comb 2.920000 user 2.920000 sys 0.000000 (best of 4) 1) wall 0.077614 comb 0.080000 user 0.080000 sys 0.000000 (best of 100) revset #23: roots((0:tip)::) 0) wall 2.875178 comb 2.880000 user 2.880000 sys 0.000000 (best of 4) 1) wall 0.154519 comb 0.150000 user 0.150000 sys 0.000000 (best of 61) On the author's machine, this slowdown manifested during evaluation of 'roots(%ln::)' in phases.retractboundary after unbundling the Firefox repository. Using `time hg unbundle firefox.hg` as a benchmark: Before: 8:00 After: 4:28 Delta: -3:32 For reference, the subset and cs baseset instances impacted by this change were of lengths 193634 and 193627, respectively. Explicit test coverage of roots(%ln::), while similar to the existing roots(0::tip) benchmark, has been added.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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::)
20894
04e1596d5dbd revset: improve _descendants performance
Durham Goode <durham@fb.com>
parents: 20861
diff changeset
    17
roots((tip~100::) - (tip~100::tip))
20861
c2a81aa19980 revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20777
diff changeset
    18
::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
    19
public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    20
:10000 and public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    21
draft()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    22
:10000 and draft()
21546
cb0e28d61905 revset-benchmark: add max(::(tip~20) - obsolete())
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 21295
diff changeset
    23
max(::(tip~20) - obsolete())
21939
f486001f9d6f revset: optimize baseset.__sub__ (issue4313)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21546
diff changeset
    24
roots((0:tip)::)