D4346: hg: wrap the highest layer in the `hg` script possible in trace event

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Tue Aug 21 21:39:54 UTC 2018


durin42 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  This should help us have a better idea of what "interpreter startup
  costs" look like.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4346

AFFECTED FILES
  hg

CHANGE DETAILS

diff --git a/hg b/hg
--- a/hg
+++ b/hg
@@ -11,31 +11,33 @@
 import os
 import sys
 
-if os.environ.get('HGUNICODEPEDANTRY', False):
-    try:
-        reload(sys)
-        sys.setdefaultencoding("undefined")
-    except NameError:
-        pass
+from hgdemandimport import tracing
+with tracing.log('hg script'):
+    if os.environ.get('HGUNICODEPEDANTRY', False):
+        try:
+            reload(sys)
+            sys.setdefaultencoding("undefined")
+        except NameError:
+            pass
 
-libdir = '@LIBDIR@'
+    libdir = '@LIBDIR@'
 
-if libdir != '@' 'LIBDIR' '@':
-    if not os.path.isabs(libdir):
-        libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
-                              libdir)
-        libdir = os.path.abspath(libdir)
-    sys.path.insert(0, libdir)
+    if libdir != '@' 'LIBDIR' '@':
+        if not os.path.isabs(libdir):
+            libdir = os.path.join(os.path.dirname(os.path.realpath(__file__)),
+                                  libdir)
+            libdir = os.path.abspath(libdir)
+        sys.path.insert(0, libdir)
 
-# enable importing on demand to reduce startup time
-try:
-    if sys.version_info[0] < 3 or sys.version_info >= (3, 6):
-        import hgdemandimport; hgdemandimport.enable()
-except ImportError:
-    sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
-                     ' '.join(sys.path))
-    sys.stderr.write("(check your install and PYTHONPATH)\n")
-    sys.exit(-1)
+    # enable importing on demand to reduce startup time
+    try:
+        if sys.version_info[0] < 3 or sys.version_info >= (3, 6):
+            import hgdemandimport; hgdemandimport.enable()
+    except ImportError:
+        sys.stderr.write("abort: couldn't find mercurial libraries in [%s]\n" %
+                         ' '.join(sys.path))
+        sys.stderr.write("(check your install and PYTHONPATH)\n")
+        sys.exit(-1)
 
-from mercurial import dispatch
-dispatch.run()
+    from mercurial import dispatch
+    dispatch.run()



To: durin42, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list