[PATCH 3 of 6] perftemplating: drop usage of buffer

Boris Feld boris.feld at octobus.net
Mon Jun 11 03:52:22 EDT 2018


# HG changeset patch
# User Boris Feld <boris.feld at octobus.net>
# Date 1527784995 -7200
#      Thu May 31 18:43:15 2018 +0200
# Node ID 5966c21ead803fb7bf57194b8c8d9714860f00a1
# Parent  1f377f7bfc6c960d8f45bc0c85f22f15e89514e6
# EXP-Topic perftemplate
# Available At https://bitbucket.org/octobus/mercurial-devel/
#              hg pull https://bitbucket.org/octobus/mercurial-devel/ -r 5966c21ead80
perftemplating: drop usage of buffer

The buffer can consume a lot of memory and change various internal behaviors.
Writing to dev/null seems more appropriate when it comes to benchmark.

diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -899,15 +899,17 @@ def perfmoonwalk(ui, repo, **opts):
 
 @command('perftemplating', formatteropts)
 def perftemplating(ui, repo, *revs, **opts):
+    nullui = ui.copy()
+    nullui.fout = open(os.devnull, 'wb')
+    nullui.disablepager()
+
     def format():
-        commands.log(ui, repo, rev=revs, date='', user='',
+        commands.log(nullui, repo, rev=revs, date='', user='',
                      template='{date|shortdate} [{rev}:{node|short}]'
                               ' {author|person}: {desc|firstline}\n')
 
     timer, fm = gettimer(ui, opts)
-    ui.pushbuffer()
     timer(format)
-    ui.popbuffer()
     fm.end()
 
 @command('perfcca', formatteropts)


More information about the Mercurial-devel mailing list