# HG changeset patch # User Yuya Nishihara # Date 2018-11-28 13:36:24 # Node ID ff927ecb12f91b383a81ec438908995fb4d6b893 # Parent 76873548b051df5b966bc1e96d55c7e2df000a3d ui: optimize buffered write with no label This was spotted while making fastannotate faster again after ditching its own formatter. Since I'm going to inline _write() into ui.write(), I decided to include this patch in this series. Here, the cost of '(self.label(a, label) for a in args)' was significant in hot loops. diff --git a/mercurial/ui.py b/mercurial/ui.py --- a/mercurial/ui.py +++ b/mercurial/ui.py @@ -1006,8 +1006,8 @@ class ui(object): def _write(self, dest, *args, **opts): if self._isbuffered(dest): - if self._bufferapplylabels: - label = opts.get(r'label', '') + label = opts.get(r'label', '') + if label and self._bufferapplylabels: self._buffers[-1].extend(self.label(a, label) for a in args) else: self._buffers[-1].extend(args)