##// END OF EJS Templates
Added signature for changeset 411dc27fd9fd
Added signature for changeset 411dc27fd9fd

File last commit:

r47920:396442cd default
r48358:29ea3b4c stable
Show More
test-contrib-perf.t
425 lines | 12.9 KiB | text/troff | Tads3Lexer
/ tests / test-contrib-perf.t
timeless
tests: drop require slow in test-contrib-perf...
r27315 #require test-repo
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
Set vars:
timeless
tests: silence test-repo obsolete warning...
r29219 $ . "$TESTDIR/helpers-testrepo.sh"
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 $ CONTRIBDIR="$TESTDIR/../contrib"
timeless
tests: use a single repo for test-contrib-perf
r27309 Prepare repo:
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
timeless
tests: use a single repo for test-contrib-perf
r27309 $ hg init
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
$ echo this is file a > a
$ hg add a
$ hg commit -m first
$ echo adding to file a >> a
$ hg commit -m second
$ echo adding more to file a >> a
$ hg commit -m third
$ hg up -r 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo merge-this >> a
$ hg commit -m merge-able
created new head
$ hg up -r 2
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
perfstatus
timeless
tests: use a single repo for test-contrib-perf
r27309 $ cat >> $HGRCPATH << EOF
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 > [extensions]
tests: use "perf" as a the extension name in test-contrib-perf.t...
r42181 > perf=$CONTRIBDIR/perf.py
timeless
tests: drop require slow in test-contrib-perf...
r27315 > [perf]
> presleep=0
> stub=on
> parentscount=1
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 > EOF
tests: use "perf" as a the extension name in test-contrib-perf.t...
r42181 $ hg help -e perf
perf extension - helper extension to measure performance
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
perf: document config options...
r42182 Configurations
==============
"perf"
------
"all-timing"
Augie Fackler
perf: copyedit a few documentation strings...
r42188 When set, additional statistics will be reported for each benchmark: best,
perf: document config options...
r42182 worst, median average. If not set only the best timing is reported
(default: off).
"presleep"
Augie Fackler
perf: copyedit a few documentation strings...
r42188 number of second to wait before any group of runs (default: 1)
perf: document config options...
r42182
perf: add a `pre-run` option...
r42551 "pre-run"
number of run to perform before starting measurement.
perf: add an option to profile the benchmark section...
r42552 "profile-benchmark"
Enable profiling for the benchmarked section. (The first iteration is
benchmarked)
perf: introduce a `perf.run-limits` options...
r42186 "run-limits"
Augie Fackler
perf: copyedit a few documentation strings...
r42188 Control the number of runs each benchmark will perform. The option value
perf: introduce a `perf.run-limits` options...
r42186 should be a list of '<time>-<numberofrun>' pairs. After each run the
Augie Fackler
perf: copyedit a few documentation strings...
r42188 conditions are considered in order with the following logic:
perf: introduce a `perf.run-limits` options...
r42186
Augie Fackler
perf: copyedit a few documentation strings...
r42188 If benchmark has been running for <time> seconds, and we have performed
perf: introduce a `perf.run-limits` options...
r42186 <numberofrun> iterations, stop the benchmark,
The default value is: '3.0-100, 10.0-3'
perf: document config options...
r42182 "stub"
Augie Fackler
perf: copyedit a few documentation strings...
r42188 When set, benchmarks will only be run once, useful for testing (default:
perf: document config options...
r42182 off)
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 list of commands:
command-namespace: use `::` are the command separator...
r47117 perf::addremove
perf: use the `perf--` prefix for perf command...
r47063 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::ancestors
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::ancestorset
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::annotate
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::bdiff benchmark a bdiff between revisions
perf::bookmarks
perf: add a perfbookmarks command...
r32733 benchmark parsing bookmarks from disk to memory
command-namespace: use `::` are the command separator...
r47117 perf::branchmap
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 benchmark the update of a branchmap
command-namespace: use `::` are the command separator...
r47117 perf::branchmapload
Martijn Pieters
perf: time loading branchmap caches...
r39150 benchmark reading the branchmap
command-namespace: use `::` are the command separator...
r47117 perf::branchmapupdate
Boris Feld
perf: add a `perfbranchmapupdate` command...
r40804 benchmark branchmap update from for <base> revs to <target>
revs
command-namespace: use `::` are the command separator...
r47117 perf::bundleread
Gregory Szorc
perf: add command to benchmark bundle reading...
r35108 Benchmark reading of bundle files.
command-namespace: use `::` are the command separator...
r47117 perf::cca (no help text available)
perf::changegroupchangelog
Gregory Szorc
perf: add perfchangegroupchangelog command...
r30018 Benchmark producing a changelog group for a changegroup.
command-namespace: use `::` are the command separator...
r47117 perf::changeset
perf: use the `perf--` prefix for perf command...
r47063 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::ctxfiles
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::diffwd Profile diff of working directory changes
perf::dirfoldmap
perf: document `perfdirfoldmap`
r43397 benchmap a 'dirstate._map.dirfoldmap.get()' request
command-namespace: use `::` are the command separator...
r47117 perf::dirs (no help text available)
perf::dirstate
perf: use the `perf--` prefix for perf command...
r47063 benchmap the time of various distate operations
command-namespace: use `::` are the command separator...
r47117 perf::dirstatedirs
perf: document `perfdirstatedirs`
r43393 benchmap a 'dirstate.hasdir' call from an empty 'dirs' cache
command-namespace: use `::` are the command separator...
r47117 perf::dirstatefoldmap
perf: document `perfdirstatefoldmap`
r43395 benchmap a 'dirstate._map.filefoldmap.get()' request
command-namespace: use `::` are the command separator...
r47117 perf::dirstatewrite
perf: document `perfdirstatewrite`
r43399 benchmap the time it take to write a dirstate on disk
command-namespace: use `::` are the command separator...
r47117 perf::discovery
Georges Racinet
perfdiscovery: benching findcommonheads()...
r40977 benchmark discovery between local repo and the peer at given
path
command-namespace: use `::` are the command separator...
r47117 perf::fncacheencode
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::fncacheload
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::fncachewrite
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::heads benchmark the computation of a changelog heads
perf::helper-mergecopies
perf: add a `perfhelper-mergecopies` command...
r42577 find statistics about potential parameters for
'perfmergecopies'
command-namespace: use `::` are the command separator...
r47117 perf::helper-pathcopies
Boris Feld
perf: add a new `perfhelper-tracecopies` command...
r40727 find statistic about potential parameters for the
'perftracecopies'
command-namespace: use `::` are the command separator...
r47117 perf::ignore benchmark operation related to computing ignore
perf::index benchmark index creation time followed by a lookup
perf::linelogedits
Jun Wu
perf: add a command to benchmark linelog edits...
r39005 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::loadmarkers
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 benchmark the time to parse the on-disk markers for a repo
command-namespace: use `::` are the command separator...
r47117 perf::log (no help text available)
perf::lookup (no help text available)
perf::lrucachedict
Gregory Szorc
perf: add perflrucachedict command...
r27286 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::manifest
perf: use the `perf--` prefix for perf command...
r47063 benchmark the time to read a manifest from disk and return a
Boris Feld
perf: document the perfmanifest command
r38715 usable
command-namespace: use `::` are the command separator...
r47117 perf::mergecalculate
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::mergecopies
perf: add a new `perfmergecopies` command...
r42576 measure runtime of 'copies.mergecopies'
command-namespace: use `::` are the command separator...
r47117 perf::moonwalk
perf: use the `perf--` prefix for perf command...
r47063 benchmark walking the changelog backwards
command-namespace: use `::` are the command separator...
r47117 perf::nodelookup
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::nodemap
perf: use the `perf--` prefix for perf command...
r47063 benchmark the time necessary to look up revision from a cold
Boris Feld
perf: add a perfnodemap command...
r41610 nodemap
command-namespace: use `::` are the command separator...
r47117 perf::parents
perf: use the `perf--` prefix for perf command...
r47063 benchmark the time necessary to fetch one changeset's parents.
command-namespace: use `::` are the command separator...
r47117 perf::pathcopies
Boris Feld
perf: add a docstring to `perfpathcopies`...
r40770 benchmark the copy tracing logic
command-namespace: use `::` are the command separator...
r47117 perf::phases benchmark phasesets computation
perf::phasesremote
Boris Feld
perf: add a perfphasesremote command...
r39180 benchmark time needed to analyse phases of the remote server
command-namespace: use `::` are the command separator...
r47117 perf::progress
perf: use the `perf--` prefix for perf command...
r47063 printing of progress bars
command-namespace: use `::` are the command separator...
r47117 perf::rawfiles
perf: use the `perf--` prefix for perf command...
r47063 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::revlogchunks
Gregory Szorc
perf: add command for measuring revlog chunk operations...
r30451 Benchmark operations on revlog chunks.
command-namespace: use `::` are the command separator...
r47117 perf::revlogindex
Gregory Szorc
perf: benchmark command for revlog indexes...
r32532 Benchmark operations against a revlog index.
command-namespace: use `::` are the command separator...
r47117 perf::revlogrevision
Gregory Szorc
perf: add perfrevlogrevision...
r27470 Benchmark obtaining a revlog revision.
command-namespace: use `::` are the command separator...
r47117 perf::revlogrevisions
Gregory Szorc
perf: rename perfrevlog to perfrevlogrevisions...
r32531 Benchmark reading a series of revisions from a revlog.
command-namespace: use `::` are the command separator...
r47117 perf::revlogwrite
Boris Feld
perf: introduce a perfrevlogwrite command...
r40583 Benchmark writing a series of revisions to a revlog.
command-namespace: use `::` are the command separator...
r47117 perf::revrange
perf: use the `perf--` prefix for perf command...
r47063 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::revset benchmark the execution time of a revset
perf::startup
perf: use the `perf--` prefix for perf command...
r47063 (no help text available)
command-namespace: use `::` are the command separator...
r47117 perf::status benchmark the performance of a single status call
perf::tags (no help text available)
perf::templating
Boris Feld
perftemplating: allow to specify the template to test...
r38277 test the rendering time of a given template
command-namespace: use `::` are the command separator...
r47117 perf::unidiff
perf: use the `perf--` prefix for perf command...
r47063 benchmark a unified diff between revisions
command-namespace: use `::` are the command separator...
r47117 perf::volatilesets
timeless
test-contrib-perf: add smoke tests for perf.py
r27101 benchmark the computation of various volatile set
command-namespace: use `::` are the command separator...
r47117 perf::walk (no help text available)
perf::write microbenchmark ui.write (and others)
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
tests: use "perf" as a the extension name in test-contrib-perf.t...
r42181 (use 'hg help -v perf' to show built-in aliases and global options)
perf: test the formatting of a command help...
r47116
$ hg help perfaddremove
command-namespace: use `::` are the command separator...
r47117 hg perf::addremove
perf: test the formatting of a command help...
r47116
aliases: perfaddremove
(no help text available)
options:
-T --template TEMPLATE display with template
(some details hidden, use --verbose to show complete help)
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfaddremove
$ hg perfancestors
$ hg perfancestorset 2
$ hg perfannotate a
Gregory Szorc
perf: add perfbdiff...
r30307 $ hg perfbdiff -c 1
Gregory Szorc
perf: unbust perfbdiff --alldata...
r30426 $ hg perfbdiff --alldata 1
Augie Fackler
perf: add a perfunidiff command for benchmarking unified diff speed...
r35879 $ hg perfunidiff -c 1
$ hg perfunidiff --alldata 1
perf: add a perfbookmarks command...
r32733 $ hg perfbookmarks
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfbranchmap
Boris Feld
perf: fallback to subset if ondisk cache is missing in perfbranchmapload...
r40756 $ hg perfbranchmapload
Boris Feld
perf: add a `perfbranchmapupdate` command...
r40804 $ hg perfbranchmapupdate --base "not tip" --target "tip"
benchmark of branchmap with 3 revisions with 1 new ones
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfcca
Gregory Szorc
perf: add perfchangegroupchangelog command...
r30018 $ hg perfchangegroupchangelog
Pulkit Goyal
perf: rename version flag of perfchangegroupchangelog to cgversion...
r40749 $ hg perfchangegroupchangelog --cgversion 01
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfchangeset 2
$ hg perfctxfiles 2
$ hg perfdiffwd
$ hg perfdirfoldmap
$ hg perfdirs
$ hg perfdirstate
perf: introduce a `--contains` flag to the `perfdirstate` command...
r43468 $ hg perfdirstate --contains
perf: introduce a `--iteration` to `perfdirstate`...
r43466 $ hg perfdirstate --iteration
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfdirstatedirs
$ hg perfdirstatefoldmap
$ hg perfdirstatewrite
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #if repofncache
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perffncacheencode
$ hg perffncacheload
Boris Feld
perffncachewrite: load fncache after lock is acquired...
r38717 $ hg debugrebuildfncache
fncache already up to date
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perffncachewrite
Boris Feld
perffncachewrite: load fncache after lock is acquired...
r38717 $ hg debugrebuildfncache
fncache already up to date
Gregory Szorc
tests: conditionalize tests for various repo features...
r37434 #endif
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfheads
Boris Feld
perf: add a perfignore command...
r40781 $ hg perfignore
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfindex
Jun Wu
perf: add a command to benchmark linelog edits...
r39005 $ hg perflinelogedits -n 1
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfloadmarkers
$ hg perflog
$ hg perflookup 2
$ hg perflrucache
$ hg perfmanifest 2
Gregory Szorc
perf: use storage API for resolving manifest node...
r39354 $ hg perfmanifest -m 44fe2c8352bb3a478ffd7d8350bbc721920134d1
$ hg perfmanifest -m 44fe2c8352bb
abort: manifest revision must be integer or full node
[255]
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfmergecalculate -r 3
$ hg perfmoonwalk
$ hg perfnodelookup 2
$ hg perfpathcopies 1 2
Gregory Szorc
perf: add perfprogress command...
r40961 $ hg perfprogress --total 1000
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfrawfiles 2
Gregory Szorc
perf: benchmark command for revlog indexes...
r32532 $ hg perfrevlogindex -c
Gregory Szorc
tests: conditionalize tests based on presence of revlogs for files...
r37356 #if reporevlogstore
Gregory Szorc
perf: rename perfrevlog to perfrevlogrevisions...
r32531 $ hg perfrevlogrevisions .hg/store/data/a.i
Gregory Szorc
tests: conditionalize tests based on presence of revlogs for files...
r37356 #endif
Gregory Szorc
perf: add perfrevlogrevision...
r27470 $ hg perfrevlogrevision -m 0
Gregory Szorc
perf: add command for measuring revlog chunk operations...
r30451 $ hg perfrevlogchunks -c
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perfrevrange
$ hg perfrevset 'all()'
$ hg perfstartup
$ hg perfstatus
perf: add a way to benchmark `dirstate.status`...
r43740 $ hg perfstatus --dirstate
timeless
tests: drop require slow in test-contrib-perf...
r27315 $ hg perftags
$ hg perftemplating
$ hg perfvolatilesets
$ hg perfwalk
$ hg perfparents
Georges Racinet
perfdiscovery: benching findcommonheads()...
r40977 $ hg perfdiscovery -q .
timeless
test-contrib-perf: add smoke tests for perf.py
r27101
perf: introduce a `perf.run-limits` options...
r42186 Test run control
----------------
Simple single entry
$ hg perfparents --config perf.stub=no --config perf.run-limits='0.000000001-15'
! wall * comb * user * sys * (best of 15) (glob)
Multiple entries
$ hg perfparents --config perf.stub=no --config perf.run-limits='500000-1, 0.000000001-5'
! wall * comb * user * sys * (best of 5) (glob)
error case are ignored
$ hg perfparents --config perf.stub=no --config perf.run-limits='500, 0.000000001-5'
malformatted run limit entry, missing "-": 500
! wall * comb * user * sys * (best of 5) (glob)
$ hg perfparents --config perf.stub=no --config perf.run-limits='aaa-12, 0.000000001-5'
Gregory Szorc
perf: make perf.run-limits code work with Python 3...
r42230 malformatted run limit entry, could not convert string to float: aaa: aaa-12 (no-py3 !)
malformatted run limit entry, could not convert string to float: 'aaa': aaa-12 (py3 !)
perf: introduce a `perf.run-limits` options...
r42186 ! wall * comb * user * sys * (best of 5) (glob)
$ hg perfparents --config perf.stub=no --config perf.run-limits='12-aaaaaa, 0.000000001-5'
malformatted run limit entry, invalid literal for int() with base 10: 'aaaaaa': 12-aaaaaa
! wall * comb * user * sys * (best of 5) (glob)
Boris Feld
perf: add a 'perf.all-timing' option to display more than best time...
r38716 test actual output
------------------
normal output:
$ hg perfheads --config perf.stub=no
! wall * comb * user * sys * (best of *) (glob)
detailed output:
$ hg perfheads --config perf.all-timing=yes --config perf.stub=no
! wall * comb * user * sys * (best of *) (glob)
! wall * comb * user * sys * (max of *) (glob)
! wall * comb * user * sys * (avg of *) (glob)
! wall * comb * user * sys * (median of *) (glob)
Boris Feld
perf: fix -T json...
r40176 test json output
----------------
normal output:
$ hg perfheads --template json --config perf.stub=no
[
{
"comb": *, (glob)
"count": *, (glob)
"sys": *, (glob)
"user": *, (glob)
"wall": * (glob)
}
]
detailed output:
$ hg perfheads --template json --config perf.all-timing=yes --config perf.stub=no
[
{
"avg.comb": *, (glob)
"avg.count": *, (glob)
"avg.sys": *, (glob)
"avg.user": *, (glob)
"avg.wall": *, (glob)
"comb": *, (glob)
"count": *, (glob)
"max.comb": *, (glob)
"max.count": *, (glob)
"max.sys": *, (glob)
"max.user": *, (glob)
"max.wall": *, (glob)
"median.comb": *, (glob)
"median.count": *, (glob)
"median.sys": *, (glob)
"median.user": *, (glob)
"median.wall": *, (glob)
"sys": *, (glob)
"user": *, (glob)
"wall": * (glob)
}
]
perf: add a `pre-run` option...
r42551 Test pre-run feature
--------------------
(perf discovery has some spurious output)
$ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=0
! wall * comb * user * sys * (best of 1) (glob)
searching for changes
$ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=1
! wall * comb * user * sys * (best of 1) (glob)
searching for changes
searching for changes
$ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.pre-run=3
! wall * comb * user * sys * (best of 1) (glob)
searching for changes
searching for changes
searching for changes
searching for changes
perf: add an option to profile the benchmark section...
r42552 test profile-benchmark option
------------------------------
Function to check that statprof ran
$ statprofran () {
> egrep 'Sample count:|No samples recorded' > /dev/null
> }
$ hg perfdiscovery . --config perf.stub=no --config perf.run-limits='0.000000001-1' --config perf.profile-benchmark=yes 2>&1 | statprofran
FUJIWARA Katsunori
tests: introduce check-perf-code.py to add extra checks on perf.py...
r29570 Check perf.py for historical portability
Boris Feld
perf: add a 'perf.all-timing' option to display more than best time...
r38716 ----------------------------------------
FUJIWARA Katsunori
tests: introduce check-perf-code.py to add extra checks on perf.py...
r29570
$ cd "$TESTDIR/.."
Yuya Nishihara
tests: alias syshg and syshgenv so they can be switched conditionally
r33199 $ (testrepohg files -r 1.2 glob:mercurial/*.c glob:mercurial/*.py;
> testrepohg files -r tip glob:mercurial/*.c glob:mercurial/*.py) |
FUJIWARA Katsunori
tests: check importing modules in perf.py for historical portability...
r29571 > "$TESTDIR"/check-perf-code.py contrib/perf.py
Boris Feld
perf: add threading capability to perfbdiff...
r35617 contrib/perf.py:\d+: (re)
Gregory Szorc
perf: add command to benchmark bundle reading...
r35108 > from mercurial import (
import newer module separately in try clause for early Mercurial
Boris Feld
perf: add a perfphasesremote command...
r39180 contrib/perf.py:\d+: (re)
> from mercurial import (
import newer module separately in try clause for early Mercurial
Boris Feld
perf: introduce a perfrevlogwrite command...
r40583 contrib/perf.py:\d+: (re)
> origindexpath = orig.opener.join(orig.indexfile)
use getvfs()/getsvfs() for early Mercurial
contrib/perf.py:\d+: (re)
> origdatapath = orig.opener.join(orig.datafile)
use getvfs()/getsvfs() for early Mercurial
contrib/perf.py:\d+: (re)
> vfs = vfsmod.vfs(tmpdir)
use getvfs()/getsvfs() for early Mercurial
contrib/perf.py:\d+: (re)
> vfs.options = getattr(orig.opener, 'options', None)
use getvfs()/getsvfs() for early Mercurial
Gregory Szorc
perf: add command to benchmark bundle reading...
r35108 [1]