tests/test-contrib-perf.t
author Manuel Jacob <me@manueljacob.de>
Thu, 16 Jul 2020 23:49:04 +0200
changeset 45146 a0791bfd9cfa
parent 44996 c2df0bca0dfa
child 46354 b8d8fd2fe75f
permissions -rw-r--r--
util: enhance `nullcontextmanager` to be able to return __enter__ result This makes its functionality and signature equivalent to Python 3.7’s contextlib.nullcontext().
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
     1
#require test-repo
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     2
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     3
Set vars:
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     4
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 27526
diff changeset
     5
  $ . "$TESTDIR/helpers-testrepo.sh"
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     6
  $ CONTRIBDIR="$TESTDIR/../contrib"
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     7
27309
b0de270acd17 tests: use a single repo for test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27286
diff changeset
     8
Prepare repo:
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
     9
27309
b0de270acd17 tests: use a single repo for test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27286
diff changeset
    10
  $ hg init
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    11
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    12
  $ echo this is file a > a
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    13
  $ hg add a
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    14
  $ hg commit -m first
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    15
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    16
  $ echo adding to file a >> a
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    17
  $ hg commit -m second
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    18
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    19
  $ echo adding more to file a >> a
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    20
  $ hg commit -m third
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    21
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    22
  $ hg up -r 0
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    23
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    24
  $ echo merge-this >> a
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    25
  $ hg commit -m merge-able
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    26
  created new head
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    27
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    28
  $ hg up -r 2
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    29
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    30
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    31
perfstatus
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    32
27309
b0de270acd17 tests: use a single repo for test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27286
diff changeset
    33
  $ cat >> $HGRCPATH << EOF
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    34
  > [extensions]
42014
d93436e2ca6b tests: use "perf" as a the extension name in test-contrib-perf.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41469
diff changeset
    35
  > perf=$CONTRIBDIR/perf.py
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
    36
  > [perf]
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
    37
  > presleep=0
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
    38
  > stub=on
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
    39
  > parentscount=1
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    40
  > EOF
42014
d93436e2ca6b tests: use "perf" as a the extension name in test-contrib-perf.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41469
diff changeset
    41
  $ hg help -e perf
d93436e2ca6b tests: use "perf" as a the extension name in test-contrib-perf.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41469
diff changeset
    42
  perf extension - helper extension to measure performance
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    43
  
42015
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    44
  Configurations
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    45
  ==============
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    46
  
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    47
  "perf"
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    48
  ------
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    49
  
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    50
  "all-timing"
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    51
      When set, additional statistics will be reported for each benchmark: best,
42015
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    52
      worst, median average. If not set only the best timing is reported
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    53
      (default: off).
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    54
  
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    55
  "presleep"
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    56
    number of second to wait before any group of runs (default: 1)
42015
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    57
  
42359
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
    58
  "pre-run"
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
    59
    number of run to perform before starting measurement.
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
    60
  
42360
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
    61
  "profile-benchmark"
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
    62
    Enable profiling for the benchmarked section. (The first iteration is
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
    63
    benchmarked)
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
    64
  
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    65
  "run-limits"
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    66
    Control the number of runs each benchmark will perform. The option value
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    67
    should be a list of '<time>-<numberofrun>' pairs. After each run the
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    68
    conditions are considered in order with the following logic:
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    69
  
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    70
        If benchmark has been running for <time> seconds, and we have performed
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    71
        <numberofrun> iterations, stop the benchmark,
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    72
  
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    73
    The default value is: '3.0-100, 10.0-3'
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
    74
  
42015
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    75
  "stub"
42021
4c700c847aa2 perf: copyedit a few documentation strings
Augie Fackler <augie@google.com>
parents: 42019
diff changeset
    76
      When set, benchmarks will only be run once, useful for testing (default:
42015
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    77
      off)
dbca2e5563c3 perf: document config options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42014
diff changeset
    78
  
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    79
  list of commands:
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    80
  
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    81
   perfaddremove
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    82
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    83
   perfancestors
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    84
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    85
   perfancestorset
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    86
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    87
   perfannotate  (no help text available)
30336
7ddc8f8d7712 perf: support bdiffing multiple revisions in a single revlog
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30307
diff changeset
    88
   perfbdiff     benchmark a bdiff between revisions
32733
2b0a8b0f3435 perf: add a perfbookmarks command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32532
diff changeset
    89
   perfbookmarks
2b0a8b0f3435 perf: add a perfbookmarks command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32532
diff changeset
    90
                 benchmark parsing bookmarks from disk to memory
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    91
   perfbranchmap
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
    92
                 benchmark the update of a branchmap
39114
222aba766015 perf: time loading branchmap caches
Martijn Pieters <mj@octobus.net>
parents: 38969
diff changeset
    93
   perfbranchmapload
222aba766015 perf: time loading branchmap caches
Martijn Pieters <mj@octobus.net>
parents: 38969
diff changeset
    94
                 benchmark reading the branchmap
40768
f723014677a5 perf: add a `perfbranchmapupdate` command
Boris Feld <boris.feld@octobus.net>
parents: 40750
diff changeset
    95
   perfbranchmapupdate
f723014677a5 perf: add a `perfbranchmapupdate` command
Boris Feld <boris.feld@octobus.net>
parents: 40750
diff changeset
    96
                 benchmark branchmap update from for <base> revs to <target>
f723014677a5 perf: add a `perfbranchmapupdate` command
Boris Feld <boris.feld@octobus.net>
parents: 40750
diff changeset
    97
                 revs
35109
e96613048bdd perf: add command to benchmark bundle reading
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
    98
   perfbundleread
e96613048bdd perf: add command to benchmark bundle reading
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
    99
                 Benchmark reading of bundle files.
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   100
   perfcca       (no help text available)
30018
bd6df07ccc24 perf: add perfchangegroupchangelog command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29974
diff changeset
   101
   perfchangegroupchangelog
bd6df07ccc24 perf: add perfchangegroupchangelog command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29974
diff changeset
   102
                 Benchmark producing a changelog group for a changegroup.
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   103
   perfchangeset
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   104
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   105
   perfctxfiles  (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   106
   perfdiffwd    Profile diff of working directory changes
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   107
   perfdirfoldmap
43127
0b32206c3c86 perf: document `perfdirfoldmap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43125
diff changeset
   108
                 benchmap a 'dirstate._map.dirfoldmap.get()' request
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   109
   perfdirs      (no help text available)
43196
5f9b1250b82a perf: introduce a `--iteration` to `perfdirstate`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43129
diff changeset
   110
   perfdirstate  benchmap the time of various distate operations
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   111
   perfdirstatedirs
43123
69301b79fd36 perf: document `perfdirstatedirs`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43121
diff changeset
   112
                 benchmap a 'dirstate.hasdir' call from an empty 'dirs' cache
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   113
   perfdirstatefoldmap
43125
56494a2bfe2f perf: document `perfdirstatefoldmap`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43123
diff changeset
   114
                 benchmap a 'dirstate._map.filefoldmap.get()' request
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   115
   perfdirstatewrite
43129
97f9ef777a75 perf: document `perfdirstatewrite`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43127
diff changeset
   116
                 benchmap the time it take to write a dirstate on disk
40941
db6cace18765 perfdiscovery: benching findcommonheads()
Georges Racinet <gracinet@anybox.fr>
parents: 40925
diff changeset
   117
   perfdiscovery
db6cace18765 perfdiscovery: benching findcommonheads()
Georges Racinet <gracinet@anybox.fr>
parents: 40925
diff changeset
   118
                 benchmark discovery between local repo and the peer at given
db6cace18765 perfdiscovery: benching findcommonheads()
Georges Racinet <gracinet@anybox.fr>
parents: 40925
diff changeset
   119
                 path
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   120
   perffncacheencode
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   121
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   122
   perffncacheload
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   123
                 (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   124
   perffncachewrite
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   125
                 (no help text available)
41434
48394923fbdc perf: document perfheads
Boris Feld <boris.feld@octobus.net>
parents: 40941
diff changeset
   126
   perfheads     benchmark the computation of a changelog heads
42385
21c436a3a4e8 perf: add a `perfhelper-mergecopies` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42384
diff changeset
   127
   perfhelper-mergecopies
21c436a3a4e8 perf: add a `perfhelper-mergecopies` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42384
diff changeset
   128
                 find statistics about potential parameters for
21c436a3a4e8 perf: add a `perfhelper-mergecopies` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42384
diff changeset
   129
                 'perfmergecopies'
40740
30d878cb102d perf: rename `perfhelper-tracecopies` to `perfhelper-pathcopies`
Boris Feld <boris.feld@octobus.net>
parents: 40739
diff changeset
   130
   perfhelper-pathcopies
40691
a65fe13de84f perf: add a new `perfhelper-tracecopies` command
Boris Feld <boris.feld@octobus.net>
parents: 40550
diff changeset
   131
                 find statistic about potential parameters for the
a65fe13de84f perf: add a new `perfhelper-tracecopies` command
Boris Feld <boris.feld@octobus.net>
parents: 40550
diff changeset
   132
                 'perftracecopies'
40750
45a0047c0ebc perf: add a perfignore command
Boris Feld <boris.feld@octobus.net>
parents: 40740
diff changeset
   133
   perfignore    benchmark operation related to computing ignore
41437
d65ba1ff4559 perf: add some documentation to perfindex
Boris Feld <boris.feld@octobus.net>
parents: 41434
diff changeset
   134
   perfindex     benchmark index creation time followed by a lookup
38969
1601afbb573c perf: add a command to benchmark linelog edits
Jun Wu <quark@fb.com>
parents: 38695
diff changeset
   135
   perflinelogedits
1601afbb573c perf: add a command to benchmark linelog edits
Jun Wu <quark@fb.com>
parents: 38695
diff changeset
   136
                 (no help text available)
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   137
   perfloadmarkers
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   138
                 benchmark the time to parse the on-disk markers for a repo
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   139
   perflog       (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   140
   perflookup    (no help text available)
27286
528cf1a73ae5 perf: add perflrucachedict command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27101
diff changeset
   141
   perflrucachedict
528cf1a73ae5 perf: add perflrucachedict command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27101
diff changeset
   142
                 (no help text available)
38693
9b6a708f2263 perf: document the perfmanifest command
Boris Feld <boris.feld@octobus.net>
parents: 38258
diff changeset
   143
   perfmanifest  benchmark the time to read a manifest from disk and return a
9b6a708f2263 perf: document the perfmanifest command
Boris Feld <boris.feld@octobus.net>
parents: 38258
diff changeset
   144
                 usable
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   145
   perfmergecalculate
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   146
                 (no help text available)
42384
f5f0a9490c05 perf: add a new `perfmergecopies` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42360
diff changeset
   147
   perfmergecopies
f5f0a9490c05 perf: add a new `perfmergecopies` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42360
diff changeset
   148
                 measure runtime of 'copies.mergecopies'
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   149
   perfmoonwalk  benchmark walking the changelog backwards
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   150
   perfnodelookup
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   151
                 (no help text available)
41469
c9ff93889550 perf: add a perfnodemap command
Boris Feld <boris.feld@octobus.net>
parents: 41437
diff changeset
   152
   perfnodemap   benchmark the time necessary to look up revision from a cold
c9ff93889550 perf: add a perfnodemap command
Boris Feld <boris.feld@octobus.net>
parents: 41437
diff changeset
   153
                 nodemap
42016
b900b392c1cc perf: document perfparents
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42015
diff changeset
   154
   perfparents   benchmark the time necessary to fetch one changeset's parents.
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   155
   perfpathcopies
40739
dc3ab5e5fe64 perf: add a docstring to `perfpathcopies`
Boris Feld <boris.feld@octobus.net>
parents: 40720
diff changeset
   156
                 benchmark the copy tracing logic
32467
ad37c569ec81 perfphases: add 'perfphases' command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32230
diff changeset
   157
   perfphases    benchmark phasesets computation
39140
1732db2f8210 perf: add a perfphasesremote command
Boris Feld <boris.feld@octobus.net>
parents: 38695
diff changeset
   158
   perfphasesremote
1732db2f8210 perf: add a perfphasesremote command
Boris Feld <boris.feld@octobus.net>
parents: 38695
diff changeset
   159
                 benchmark time needed to analyse phases of the remote server
40925
008f3491dc53 perf: add perfprogress command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40768
diff changeset
   160
   perfprogress  printing of progress bars
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   161
   perfrawfiles  (no help text available)
30451
94ca0e13d1fc perf: add command for measuring revlog chunk operations
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30426
diff changeset
   162
   perfrevlogchunks
94ca0e13d1fc perf: add command for measuring revlog chunk operations
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30426
diff changeset
   163
                 Benchmark operations on revlog chunks.
32532
e4f514627514 perf: benchmark command for revlog indexes
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32531
diff changeset
   164
   perfrevlogindex
e4f514627514 perf: benchmark command for revlog indexes
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32531
diff changeset
   165
                 Benchmark operations against a revlog index.
27470
d394a1a3708a perf: add perfrevlogrevision
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27315
diff changeset
   166
   perfrevlogrevision
d394a1a3708a perf: add perfrevlogrevision
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27315
diff changeset
   167
                 Benchmark obtaining a revlog revision.
32531
7236facefd4f perf: rename perfrevlog to perfrevlogrevisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32467
diff changeset
   168
   perfrevlogrevisions
7236facefd4f perf: rename perfrevlog to perfrevlogrevisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32467
diff changeset
   169
                 Benchmark reading a series of revisions from a revlog.
40550
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   170
   perfrevlogwrite
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   171
                 Benchmark writing a series of revisions to a revlog.
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   172
   perfrevrange  (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   173
   perfrevset    benchmark the execution time of a revset
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   174
   perfstartup   (no help text available)
43120
97f80dd21312 perf: document `perfstatus`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42385
diff changeset
   175
   perfstatus    benchmark the performance of a single status call
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   176
   perftags      (no help text available)
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   177
   perftemplating
38258
ae6e02fcee24 perftemplating: allow to specify the template to test
Boris Feld <boris.feld@octobus.net>
parents: 37416
diff changeset
   178
                 test the rendering time of a given template
35861
ed939545edd0 perf: add a perfunidiff command for benchmarking unified diff speed
Augie Fackler <augie@google.com>
parents: 35599
diff changeset
   179
   perfunidiff   benchmark a unified diff between revisions
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   180
   perfvolatilesets
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   181
                 benchmark the computation of various volatile set
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   182
   perfwalk      (no help text available)
44996
c2df0bca0dfa perf: make `hg perfwrite` more flexible
Manuel Jacob <me@manueljacob.de>
parents: 43436
diff changeset
   183
   perfwrite     microbenchmark ui.write (and others)
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   184
  
42014
d93436e2ca6b tests: use "perf" as a the extension name in test-contrib-perf.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 41469
diff changeset
   185
  (use 'hg help -v perf' to show built-in aliases and global options)
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   186
  $ hg perfaddremove
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   187
  $ hg perfancestors
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   188
  $ hg perfancestorset 2
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   189
  $ hg perfannotate a
30307
c8fa7ad1ff90 perf: add perfbdiff
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30018
diff changeset
   190
  $ hg perfbdiff -c 1
30426
605e3b126d46 perf: unbust perfbdiff --alldata
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30336
diff changeset
   191
  $ hg perfbdiff --alldata 1
35861
ed939545edd0 perf: add a perfunidiff command for benchmarking unified diff speed
Augie Fackler <augie@google.com>
parents: 35599
diff changeset
   192
  $ hg perfunidiff -c 1
ed939545edd0 perf: add a perfunidiff command for benchmarking unified diff speed
Augie Fackler <augie@google.com>
parents: 35599
diff changeset
   193
  $ hg perfunidiff --alldata 1
32733
2b0a8b0f3435 perf: add a perfbookmarks command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 32532
diff changeset
   194
  $ hg perfbookmarks
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   195
  $ hg perfbranchmap
40720
0a3cc351d718 perf: fallback to subset if ondisk cache is missing in perfbranchmapload
Boris Feld <boris.feld@octobus.net>
parents: 40713
diff changeset
   196
  $ hg perfbranchmapload
40768
f723014677a5 perf: add a `perfbranchmapupdate` command
Boris Feld <boris.feld@octobus.net>
parents: 40750
diff changeset
   197
  $ hg perfbranchmapupdate --base "not tip" --target "tip"
f723014677a5 perf: add a `perfbranchmapupdate` command
Boris Feld <boris.feld@octobus.net>
parents: 40750
diff changeset
   198
  benchmark of branchmap with 3 revisions with 1 new ones
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   199
  $ hg perfcca
30018
bd6df07ccc24 perf: add perfchangegroupchangelog command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29974
diff changeset
   200
  $ hg perfchangegroupchangelog
40713
cfaf3843491b perf: rename version flag of perfchangegroupchangelog to cgversion
Pulkit Goyal <pulkit@yandex-team.ru>
parents: 40691
diff changeset
   201
  $ hg perfchangegroupchangelog --cgversion 01
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   202
  $ hg perfchangeset 2
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   203
  $ hg perfctxfiles 2
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   204
  $ hg perfdiffwd
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   205
  $ hg perfdirfoldmap
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   206
  $ hg perfdirs
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   207
  $ hg perfdirstate
43197
0c4efb6eb4fa perf: introduce a `--contains` flag to the `perfdirstate` command
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43196
diff changeset
   208
  $ hg perfdirstate --contains
43196
5f9b1250b82a perf: introduce a `--iteration` to `perfdirstate`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43129
diff changeset
   209
  $ hg perfdirstate --iteration
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   210
  $ hg perfdirstatedirs
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   211
  $ hg perfdirstatefoldmap
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   212
  $ hg perfdirstatewrite
37416
7542e97c7867 tests: conditionalize tests for various repo features
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37338
diff changeset
   213
#if repofncache
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   214
  $ hg perffncacheencode
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   215
  $ hg perffncacheload
38695
2cdb82e8fb44 perffncachewrite: load fncache after lock is acquired
Boris Feld <boris.feld@octobus.net>
parents: 38694
diff changeset
   216
  $ hg debugrebuildfncache
2cdb82e8fb44 perffncachewrite: load fncache after lock is acquired
Boris Feld <boris.feld@octobus.net>
parents: 38694
diff changeset
   217
  fncache already up to date
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   218
  $ hg perffncachewrite
38695
2cdb82e8fb44 perffncachewrite: load fncache after lock is acquired
Boris Feld <boris.feld@octobus.net>
parents: 38694
diff changeset
   219
  $ hg debugrebuildfncache
2cdb82e8fb44 perffncachewrite: load fncache after lock is acquired
Boris Feld <boris.feld@octobus.net>
parents: 38694
diff changeset
   220
  fncache already up to date
37416
7542e97c7867 tests: conditionalize tests for various repo features
Gregory Szorc <gregory.szorc@gmail.com>
parents: 37338
diff changeset
   221
#endif
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   222
  $ hg perfheads
40750
45a0047c0ebc perf: add a perfignore command
Boris Feld <boris.feld@octobus.net>
parents: 40740
diff changeset
   223
  $ hg perfignore
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   224
  $ hg perfindex
38969
1601afbb573c perf: add a command to benchmark linelog edits
Jun Wu <quark@fb.com>
parents: 38695
diff changeset
   225
  $ hg perflinelogedits -n 1
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   226
  $ hg perfloadmarkers
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   227
  $ hg perflog
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   228
  $ hg perflookup 2
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   229
  $ hg perflrucache
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   230
  $ hg perfmanifest 2
39318
c03c5f528e9b perf: use storage API for resolving manifest node
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39147
diff changeset
   231
  $ hg perfmanifest -m 44fe2c8352bb3a478ffd7d8350bbc721920134d1
c03c5f528e9b perf: use storage API for resolving manifest node
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39147
diff changeset
   232
  $ hg perfmanifest -m 44fe2c8352bb
c03c5f528e9b perf: use storage API for resolving manifest node
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39147
diff changeset
   233
  abort: manifest revision must be integer or full node
c03c5f528e9b perf: use storage API for resolving manifest node
Gregory Szorc <gregory.szorc@gmail.com>
parents: 39147
diff changeset
   234
  [255]
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   235
  $ hg perfmergecalculate -r 3
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   236
  $ hg perfmoonwalk
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   237
  $ hg perfnodelookup 2
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   238
  $ hg perfpathcopies 1 2
40925
008f3491dc53 perf: add perfprogress command
Gregory Szorc <gregory.szorc@gmail.com>
parents: 40768
diff changeset
   239
  $ hg perfprogress --total 1000
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   240
  $ hg perfrawfiles 2
32532
e4f514627514 perf: benchmark command for revlog indexes
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32531
diff changeset
   241
  $ hg perfrevlogindex -c
37338
cbc4425e81b5 tests: conditionalize tests based on presence of revlogs for files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 35861
diff changeset
   242
#if reporevlogstore
32531
7236facefd4f perf: rename perfrevlog to perfrevlogrevisions
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32467
diff changeset
   243
  $ hg perfrevlogrevisions .hg/store/data/a.i
37338
cbc4425e81b5 tests: conditionalize tests based on presence of revlogs for files
Gregory Szorc <gregory.szorc@gmail.com>
parents: 35861
diff changeset
   244
#endif
27470
d394a1a3708a perf: add perfrevlogrevision
Gregory Szorc <gregory.szorc@gmail.com>
parents: 27315
diff changeset
   245
  $ hg perfrevlogrevision -m 0
30451
94ca0e13d1fc perf: add command for measuring revlog chunk operations
Gregory Szorc <gregory.szorc@gmail.com>
parents: 30426
diff changeset
   246
  $ hg perfrevlogchunks -c
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   247
  $ hg perfrevrange
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   248
  $ hg perfrevset 'all()'
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   249
  $ hg perfstartup
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   250
  $ hg perfstatus
43436
bfc68404cccd perf: add a way to benchmark `dirstate.status`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 43197
diff changeset
   251
  $ hg perfstatus --dirstate
27315
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   252
  $ hg perftags
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   253
  $ hg perftemplating
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   254
  $ hg perfvolatilesets
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   255
  $ hg perfwalk
be48b7559422 tests: drop require slow in test-contrib-perf
timeless <timeless@mozdev.org>
parents: 27309
diff changeset
   256
  $ hg perfparents
40941
db6cace18765 perfdiscovery: benching findcommonheads()
Georges Racinet <gracinet@anybox.fr>
parents: 40925
diff changeset
   257
  $ hg perfdiscovery -q .
27101
61fbf5dc12b2 test-contrib-perf: add smoke tests for perf.py
timeless <timeless@mozdev.org>
parents:
diff changeset
   258
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   259
Test run control
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   260
----------------
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   261
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   262
Simple single entry
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   263
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   264
  $ hg perfparents --config perf.stub=no --config perf.run-limits='0.000000001-15'
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   265
  ! wall * comb * user * sys * (best of 15) (glob)
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   266
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   267
Multiple entries
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   268
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   269
  $ hg perfparents --config perf.stub=no --config perf.run-limits='500000-1, 0.000000001-5'
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   270
  ! wall * comb * user * sys * (best of 5) (glob)
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   271
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   272
error case are ignored
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   273
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   274
  $ hg perfparents --config perf.stub=no --config perf.run-limits='500, 0.000000001-5'
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   275
  malformatted run limit entry, missing "-": 500
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   276
  ! wall * comb * user * sys * (best of 5) (glob)
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   277
  $ hg perfparents --config perf.stub=no --config perf.run-limits='aaa-12, 0.000000001-5'
42063
912d82daeda3 perf: make perf.run-limits code work with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42021
diff changeset
   278
  malformatted run limit entry, could not convert string to float: aaa: aaa-12 (no-py3 !)
912d82daeda3 perf: make perf.run-limits code work with Python 3
Gregory Szorc <gregory.szorc@gmail.com>
parents: 42021
diff changeset
   279
  malformatted run limit entry, could not convert string to float: 'aaa': aaa-12 (py3 !)
42019
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   280
  ! wall * comb * user * sys * (best of 5) (glob)
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   281
  $ hg perfparents --config perf.stub=no --config perf.run-limits='12-aaaaaa, 0.000000001-5'
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   282
  malformatted run limit entry, invalid literal for int() with base 10: 'aaaaaa': 12-aaaaaa
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   283
  ! wall * comb * user * sys * (best of 5) (glob)
5a1e621b8186 perf: introduce a `perf.run-limits` options
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42016
diff changeset
   284
38694
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   285
test actual output
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   286
------------------
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   287
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   288
normal output:
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   289
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   290
  $ hg perfheads --config perf.stub=no
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   291
  ! wall * comb * user * sys * (best of *) (glob)
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   292
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   293
detailed output:
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   294
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   295
  $ hg perfheads --config perf.all-timing=yes --config perf.stub=no
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   296
  ! wall * comb * user * sys * (best of *) (glob)
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   297
  ! wall * comb * user * sys * (max of *) (glob)
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   298
  ! wall * comb * user * sys * (avg of *) (glob)
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   299
  ! wall * comb * user * sys * (median of *) (glob)
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   300
40141
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   301
test json output
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   302
----------------
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   303
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   304
normal output:
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   305
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   306
  $ hg perfheads --template json --config perf.stub=no
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   307
  [
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   308
   {
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   309
    "comb": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   310
    "count": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   311
    "sys": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   312
    "user": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   313
    "wall": * (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   314
   }
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   315
  ]
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   316
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   317
detailed output:
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   318
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   319
  $ hg perfheads --template json --config perf.all-timing=yes --config perf.stub=no
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   320
  [
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   321
   {
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   322
    "avg.comb": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   323
    "avg.count": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   324
    "avg.sys": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   325
    "avg.user": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   326
    "avg.wall": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   327
    "comb": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   328
    "count": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   329
    "max.comb": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   330
    "max.count": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   331
    "max.sys": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   332
    "max.user": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   333
    "max.wall": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   334
    "median.comb": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   335
    "median.count": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   336
    "median.sys": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   337
    "median.user": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   338
    "median.wall": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   339
    "sys": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   340
    "user": *, (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   341
    "wall": * (glob)
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   342
   }
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   343
  ]
8643219146e1 perf: fix -T json
Boris Feld <boris.feld@octobus.net>
parents: 39318
diff changeset
   344
42359
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   345
Test pre-run feature
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   346
--------------------
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   347
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   348
(perf discovery has some spurious output)
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   349
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   350
  $ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=0
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   351
  ! wall * comb * user * sys * (best of 1) (glob)
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   352
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   353
  $ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=1
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   354
  ! wall * comb * user * sys * (best of 1) (glob)
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   355
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   356
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   357
  $ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=3
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   358
  ! wall * comb * user * sys * (best of 1) (glob)
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   359
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   360
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   361
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   362
  searching for changes
563cd9a72682 perf: add a `pre-run` option
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42063
diff changeset
   363
42360
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   364
test  profile-benchmark option
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   365
------------------------------
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   366
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   367
Function to check that statprof ran
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   368
  $ statprofran () {
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   369
  >   egrep 'Sample count:|No samples recorded' > /dev/null
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   370
  > }
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   371
  $ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.profile-benchmark=yes 2>&1 | statprofran
3293086ff663 perf: add an option to profile the benchmark section
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 42359
diff changeset
   372
29570
cbd240188e4e tests: introduce check-perf-code.py to add extra checks on perf.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29219
diff changeset
   373
Check perf.py for historical portability
38694
55101513ed94 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net>
parents: 38693
diff changeset
   374
----------------------------------------
29570
cbd240188e4e tests: introduce check-perf-code.py to add extra checks on perf.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29219
diff changeset
   375
cbd240188e4e tests: introduce check-perf-code.py to add extra checks on perf.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29219
diff changeset
   376
  $ cd "$TESTDIR/.."
cbd240188e4e tests: introduce check-perf-code.py to add extra checks on perf.py
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29219
diff changeset
   377
33204
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
   378
  $ (testrepohg files -r 1.2 glob:mercurial/*.c glob:mercurial/*.py;
ddd65b4f3ae6 tests: alias syshg and syshgenv so they can be switched conditionally
Yuya Nishihara <yuya@tcha.org>
parents: 33116
diff changeset
   379
  >  testrepohg files -r tip glob:mercurial/*.c glob:mercurial/*.py) |
29571
d1a7d9c279bb tests: check importing modules in perf.py for historical portability
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents: 29570
diff changeset
   380
  > "$TESTDIR"/check-perf-code.py contrib/perf.py
35599
af25237be091 perf: add threading capability to perfbdiff
Boris Feld <boris.feld@octobus.net>
parents: 35109
diff changeset
   381
  contrib/perf.py:\d+: (re)
35109
e96613048bdd perf: add command to benchmark bundle reading
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
   382
   >     from mercurial import (
e96613048bdd perf: add command to benchmark bundle reading
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
   383
   import newer module separately in try clause for early Mercurial
39140
1732db2f8210 perf: add a perfphasesremote command
Boris Feld <boris.feld@octobus.net>
parents: 38695
diff changeset
   384
  contrib/perf.py:\d+: (re)
1732db2f8210 perf: add a perfphasesremote command
Boris Feld <boris.feld@octobus.net>
parents: 38695
diff changeset
   385
   >     from mercurial import (
1732db2f8210 perf: add a perfphasesremote command
Boris Feld <boris.feld@octobus.net>
parents: 38695
diff changeset
   386
   import newer module separately in try clause for early Mercurial
40550
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   387
  contrib/perf.py:\d+: (re)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   388
   >     origindexpath = orig.opener.join(orig.indexfile)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   389
   use getvfs()/getsvfs() for early Mercurial
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   390
  contrib/perf.py:\d+: (re)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   391
   >     origdatapath = orig.opener.join(orig.datafile)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   392
   use getvfs()/getsvfs() for early Mercurial
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   393
  contrib/perf.py:\d+: (re)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   394
   >         vfs = vfsmod.vfs(tmpdir)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   395
   use getvfs()/getsvfs() for early Mercurial
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   396
  contrib/perf.py:\d+: (re)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   397
   >         vfs.options = getattr(orig.opener, 'options', None)
164b2e77f9a5 perf: introduce a perfrevlogwrite command
Boris Feld <boris.feld@octobus.net>
parents: 40141
diff changeset
   398
   use getvfs()/getsvfs() for early Mercurial
35109
e96613048bdd perf: add command to benchmark bundle reading
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33204
diff changeset
   399
  [1]