contrib/base-revsets.txt
author Gregory Szorc <gregory.szorc@gmail.com>
Mon, 13 Nov 2017 21:48:35 -0800
changeset 35139 1fb0846ad792
parent 25609 67a2192dcb64
child 38712 70a4289896b0
permissions -rw-r--r--
bundle2: inline changegroup.readexactly() Profiling reveals this loop is pretty tight. Literally any function call elimination can make a big difference. This commit inlines the relatively trivial changegroup.readexactly() method inside the loop. The results with `hg perfbundleread` on a bundle of the Firefox repo speak for themselves: ! read(8k) ! wall 0.679730 comb 0.680000 user 0.140000 sys 0.540000 (best of 15) ! read(16k) ! wall 0.577228 comb 0.570000 user 0.080000 sys 0.490000 (best of 17) ! read(32k) ! wall 0.516060 comb 0.520000 user 0.040000 sys 0.480000 (best of 20) ! read(128k) ! wall 0.496378 comb 0.490000 user 0.010000 sys 0.480000 (best of 20) ! bundle2 iterparts() ! wall 3.460903 comb 3.460000 user 2.760000 sys 0.700000 (best of 3) ! wall 3.056811 comb 3.050000 user 2.340000 sys 0.710000 (best of 4) ! bundle2 iterparts() seekable ! wall 4.312722 comb 4.310000 user 3.480000 sys 0.830000 (best of 3) ! wall 4.007676 comb 4.000000 user 3.170000 sys 0.830000 (best of 3) ! bundle2 part seek() ! wall 6.754764 comb 6.740000 user 3.970000 sys 2.770000 (best of 3) ! wall 6.267110 comb 6.250000 user 3.480000 sys 2.770000 (best of 3) ! bundle2 part read(8k) ! wall 3.668004 comb 3.660000 user 2.960000 sys 0.700000 (best of 3) ! wall 3.404164 comb 3.400000 user 2.650000 sys 0.750000 (best of 3) ! bundle2 part read(16k) ! wall 3.489196 comb 3.480000 user 2.750000 sys 0.730000 (best of 3) ! wall 3.197972 comb 3.200000 user 2.490000 sys 0.710000 (best of 4) ! bundle2 part read(32k) ! wall 3.388569 comb 3.380000 user 2.640000 sys 0.740000 (best of 3) ! wall 3.060557 comb 3.060000 user 2.340000 sys 0.720000 (best of 4) ! bundle2 part read(128k) ! wall 3.276415 comb 3.270000 user 2.560000 sys 0.710000 (best of 4) ! wall 2.952209 comb 2.950000 user 2.230000 sys 0.720000 (best of 4) Differential Revision: https://phab.mercurial-scm.org/D1392
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
25608
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     1
# Base Revsets to be used with revsetbenchmarks.py script
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     2
#
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     3
# The goal of this file is to gather a limited amount of revsets that allow a
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     4
# good coverage of the internal revsets mechanisms.  Revsets included should not
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     5
# be selected for their individual implementation, but for what they reveal of
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     6
# the internal implementation of smartsets classes (and their interactions).
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     7
#
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     8
# Use and update this file when you change internal implementation of these
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
     9
# smartsets classes. Please include a comment explaining what each of your
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    10
# addition is testing. Also check if your changes to the smartset class makes
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    11
# some of the tests inadequate and replace them with a new one testing the same
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    12
# behavior.
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    13
#
25609
67a2192dcb64 contrib: introduce an all-revsets.txt file
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25608
diff changeset
    14
# If you want to benchmark revsets predicate itself, check 'all-revsets.txt'.
67a2192dcb64 contrib: introduce an all-revsets.txt file
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25608
diff changeset
    15
#
25608
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    16
# The current content of this file is currently likely not reaching this goal
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    17
# entirely, feel free, to audit its content and comment on each revset to
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    18
# highlight what internal mechanisms they test.
2fea23d035d8 contrib: rename revsetbenchmarks.txt to 'base-revsets.txt'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 25545
diff changeset
    19
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    20
all()
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    21
draft()
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    22
::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    23
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
    24
::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
    25
0::tip
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    26
roots(0::tip)
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    27
author(lmoscovicz)
20777
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    28
author(mpm)
20744
9907b3f79ac2 contrib: added revset examples for benchmarking performance
Lucas Moscovicz <lmoscovicz@fb.com>
parents:
diff changeset
    29
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
    30
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
    31
tip:0
77318d3c3b24 benchmark-revset: add full version of benchmarked revset
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20754
diff changeset
    32
0::
22556
480a24ad9f77 revsetbenchmark: allow comments ('#' prefix) in the revset input
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22458
diff changeset
    33
# 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
    34
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
    35
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
    36
42:68 and roots(42:tip)
20861
c2a81aa19980 revsetbenchmark: add entry for ::rev::
Gregory Szorc <gregory.szorc@gmail.com>
parents: 20777
diff changeset
    37
::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
    38
public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    39
:10000 and public()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    40
draft()
1d7a2771aa36 revset: inline spanset containment check (fix perf regression)
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 20894
diff changeset
    41
:10000 and draft()
21939
f486001f9d6f revset: optimize baseset.__sub__ (issue4313)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21546
diff changeset
    42
roots((0:tip)::)
22312
8b980fbbd6dc revsetbenchmark: add revset with lazyset subtraction
Gregory Szorc <gregory.szorc@gmail.com>
parents: 21939
diff changeset
    43
(not public() - obsolete())
22451
186fd06283b4 revset: lower weight for _intlist function
Durham Goode <durham@fb.com>
parents: 22450
diff changeset
    44
(_intlist('20000\x0020001')) and merge()
22450
95af98616aa7 revset: make parents() O(number of parents)
Durham Goode <durham@fb.com>
parents: 22449
diff changeset
    45
parents(20000)
22449
da05fe01170b revset: make descendants() lazier
Durham Goode <durham@fb.com>
parents: 22312
diff changeset
    46
(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
    47
# 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
    48
(children(ancestor(tip~5, tip)) and ::(tip~5))::