diff tests/test-contrib-perf.t @ 40925: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