Mercurial > public > mercurial-scm > hg-stable
diff tests/test-contrib-perf.t @ 40943:008f3491dc53
perf: add perfprogress command
I've noticed that progress bars can add significant overhead to tight
loops. Let's add a perf command that attempts to isolate that overhead.
With a default hgrc, iteration over 1M items appears to take ~3.75s on
my machine. Profiling reveals ~28% of time is spent in ui.configbool()
resolving the value of the progress.debug config option.
Even if I set progress.disable=true, execution still takes ~2.60s, with
~59% of the time spent in ui.configbool().
Differential Revision: https://phab.mercurial-scm.org/D5407
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 10 Dec 2018 20:01:07 +0000 |
parents | f723014677a5 |
children | db6cace18765 |
line wrap: on
line diff
--- a/tests/test-contrib-perf.t Mon Dec 10 18:55:08 2018 +0000 +++ b/tests/test-contrib-perf.t Mon Dec 10 20:01:07 2018 +0000 @@ -112,6 +112,7 @@ perfphases benchmark phasesets computation perfphasesremote benchmark time needed to analyse phases of the remote server + perfprogress printing of progress bars perfrawfiles (no help text available) perfrevlogchunks Benchmark operations on revlog chunks. @@ -188,6 +189,7 @@ $ hg perfmoonwalk $ hg perfnodelookup 2 $ hg perfpathcopies 1 2 + $ hg perfprogress --total 1000 $ hg perfrawfiles 2 $ hg perfrevlogindex -c #if reporevlogstore