D5408: progress: avoid ui.configbool() lookup when progress bar is active
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Thu Dec 27 07:34:18 EST 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG6603de284b0a: progress: avoid ui.configbool() lookup when progress bar is active (authored by indygreg, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5408?vs=12982&id=12985
REVISION DETAIL
https://phab.mercurial-scm.org/D5408
AFFECTED FILES
mercurial/progress.py
mercurial/ui.py
CHANGE DETAILS
diff --git a/mercurial/ui.py b/mercurial/ui.py
--- a/mercurial/ui.py
+++ b/mercurial/ui.py
@@ -1702,6 +1702,14 @@
elif self._progbar is not None:
self._progbar.progress(topic, pos, item=item, unit=unit,
total=total)
+
+ # Looking up progress.debug in tight loops is expensive. The value
+ # is cached on the progbar object and we can avoid the lookup in
+ # the common case where a progbar is active.
+ if pos is None or not self._progbar.debug:
+ return
+
+ # Keep this logic in sync with above.
if pos is None or not self.configbool('progress', 'debug'):
return
diff --git a/mercurial/progress.py b/mercurial/progress.py
--- a/mercurial/progress.py
+++ b/mercurial/progress.py
@@ -104,6 +104,8 @@
self.order = self.ui.configlist('progress', 'format')
self.estimateinterval = self.ui.configwith(
float, 'progress', 'estimateinterval')
+ # developer config: progress.debug
+ self.debug = self.ui.configbool('progress', 'debug')
def show(self, now, topic, pos, item, unit, total):
if not shouldprint(self.ui):
To: indygreg, #hg-reviewers
Cc: yuja, pulkit, mercurial-devel
More information about the Mercurial-devel
mailing list