[PATCH 3 of 8 v4] contrib: add a write microbenchmark to perf.py
Simon Farnsworth
simonfar at fb.com
Mon Feb 13 17:29:03 UTC 2017
# HG changeset patch
# User Simon Farnsworth <simonfar at fb.com>
# Date 1486994849 28800
# Mon Feb 13 06:07:29 2017 -0800
# Node ID 5a595ee2509989e440d70eb0e134fea915a0a8d6
# Parent 00f01e9a24bc050ab5cbbfc5a8dc99e992e31d2b
contrib: add a write microbenchmark to perf.py
I'm adding some performance logging to ui.write - this benchmark lets us
confirm that the cost of that logging is acceptably low.
At this point, the microbenchmark on Linux over SSH shows:
! wall 3.213560 comb 0.410000 user 0.350000 sys 0.060000 (best of 4)
while on the Mac locally, it shows:
! wall 0.342325 comb 0.180000 user 0.110000 sys 0.070000 (best of 20)
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -1269,6 +1269,17 @@
timer(fn, title=title)
fm.end()
+ at command('perfwrite', formatteropts)
+def perfwrite(ui, repo, **opts):
+ """microbenchmark ui.write
+ """
+ timer, fm = gettimer(ui, opts)
+ def write():
+ for i in range(100000):
+ ui.write(('Testing write performance\n'))
+ timer(write)
+ fm.end()
+
def uisetup(ui):
if (util.safehasattr(cmdutil, 'openrevlog') and
not util.safehasattr(commands, 'debugrevlogopts')):
diff --git a/tests/test-contrib-perf.t b/tests/test-contrib-perf.t
--- a/tests/test-contrib-perf.t
+++ b/tests/test-contrib-perf.t
@@ -109,6 +109,7 @@
perfvolatilesets
benchmark the computation of various volatile set
perfwalk (no help text available)
+ perfwrite microbenchmark ui.write
(use 'hg help -v perfstatusext' to show built-in aliases and global options)
$ hg perfaddremove
More information about the Mercurial-devel
mailing list