# HG changeset patch # User Gregory Szorc # Date 2017-06-15 18:10:51 # Node ID cb6436e051ca0ff256555f662ba453df1db92208 # Parent e33c9a47b0dbeb9657a9d857a0cfd8644b4db76c profiling: allow configuring minimum display threshold for hotpath statprof.display_hotpath() accepts a "limit" function to choose the minimum threshold for samples to display. The default is 0.05, which means you don't need individual items contributing less than 5%. I had a need to adjust this threshold. We already have a config option for it. So let's reuse it. check-config.py doesn't like having multiple defaults for the ui.configwith() calls. The behavior is obviously correct. I'm not sure if it is worth teaching check-config.py how to ignore this. So I've just accepted the new output. diff --git a/mercurial/help/config.txt b/mercurial/help/config.txt --- a/mercurial/help/config.txt +++ b/mercurial/help/config.txt @@ -1580,6 +1580,7 @@ profiling is done using lsprof. Only used by the ``stat`` profiler. + For the ``hotpath`` format, default is ``0.05``. For the ``chrome`` format, default is ``0.005``. The option is unused on other formats. diff --git a/mercurial/profiling.py b/mercurial/profiling.py --- a/mercurial/profiling.py +++ b/mercurial/profiling.py @@ -138,6 +138,9 @@ def statprofile(ui, fp): showmin = ui.configwith(fraction, 'profiling', 'showmin', 0.005) showmax = ui.configwith(fraction, 'profiling', 'showmax', 0.999) kwargs.update(minthreshold=showmin, maxthreshold=showmax) + elif profformat == 'hotpath': + limit = ui.configwith(fraction, 'profiling', 'showmin', 0.05) + kwargs['limit'] = limit statprof.display(fp, data=data, format=displayformat, **kwargs) diff --git a/tests/test-check-config.t b/tests/test-check-config.t --- a/tests/test-check-config.t +++ b/tests/test-check-config.t @@ -33,3 +33,6 @@ New errors are not allowed. Warnings are $ hg files "set:(**.py or **.txt) - tests/**" | sed 's|\\|/|g' | > python contrib/check-config.py + limit = ui.configwith(fraction, 'profiling', 'showmin', 0.05) + + conflict on profiling.showmin: ('with', '0.05') != ('with', '0.005')