profiling: add config option for enabling profiling
Previously you could only enable profiling via the --profile option. This is
awkward when trying to debug a server side operation. Let's add a config option
to enable profiling.
In the future, this could be extended to allow profiling a certain percentage of
operations (and potentially reporting that information to an external service).
--- a/mercurial/dispatch.py Mon Sep 07 11:31:44 2015 -0700
+++ b/mercurial/dispatch.py Mon Sep 07 11:35:40 2015 -0700
@@ -1003,13 +1003,17 @@
statprof.display(fp)
def _runcommand(ui, options, cmd, cmdfunc):
+ """Enables the profiler if applicable.
+
+ ``profiling.enabled`` - boolean config that enables or disables profiling
+ """
def checkargs():
try:
return cmdfunc()
except error.SignatureError:
raise error.CommandError(cmd, _("invalid arguments"))
- if options['profile']:
+ if options['profile'] or ui.configbool('profiling', 'enabled'):
profiler = os.getenv('HGPROF')
if profiler is None:
profiler = ui.config('profiling', 'type', default='ls')