spectral created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REVISION SUMMARY
  martinvonz claims they thought that this was intentional, but couldn't 
remember
  the reasoning for it. I can't understand why it would be preferable, and I
  didn't see anything in the comments in the file about why this would be 
useful,
  so I'm hopefully not breaking anything by "fixing" it.
  
  Old output
  ----------
  
    | 100.0%  0.01s  dispatch.py:    run               line 43:  dispatch.run()
    | 100.0%  0.01s  dispatch.py:    dispatch          line 115:  status = 
dispatch(req)
    | 100.0%  0.01s  dispatch.py:    _runcatch         line 266:  ret = 
_runcatch(req) or 0
    | 100.0%  0.01s  dispatch.py:    _callcatch        line 442:  return 
_callcatch(ui, _runc...
    | 100.0%  0.01s  scmutil.py:     callcatch         line 451:  return 
scmutil.callcatch(ui...
    | 100.0%  0.01s  dispatch.py:    _runcatchfunc     line 155:  return func()
    | 100.0%  0.01s  dispatch.py:    _dispatch         line 432:  return 
_dispatch(req)
    | 100.0%  0.01s  hg.py:          repository        line 1179:  repo = 
hg.repository(
    | 100.0%  0.01s  hg.py:          _peerorrepo       line 221:  peer = 
_peerorrepo(
    | 100.0%  0.01s  util.py:        __getattribute__  line 188:  obj = 
_peerlookup(path).ins...
    | 100.0%  0.01s  localrepo.py:   makelocalrepositoryline 3227:  return 
makelocalrepository(...
    | 100.0%  0.01s  localrepo.py:   __init__          line 683:  return cls(
    | 100.0%  0.01s  util.py:        __getattribute__  line 1262:  
self._extrafilterid = repov...
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: exec_moduleline    
      245:  self.__spec__.loader.exec_m...
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: get_codeline       
779:
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: path_statsline     
    868:
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: _path_statline     
    1012:
  
  
  
  New output
  ----------
  
    | 100.0%  0.01s  hg:             <module>          line 43:  dispatch.run()
    | 100.0%  0.01s  dispatch.py:    run               line 115:  status = 
dispatch(req)
    | 100.0%  0.01s  dispatch.py:    dispatch          line 266:  ret = 
_runcatch(req) or 0
    | 100.0%  0.01s  dispatch.py:    _runcatch         line 442:  return 
_callcatch(ui, _runc...
    | 100.0%  0.01s  dispatch.py:    _callcatch        line 451:  return 
scmutil.callcatch(ui...
    | 100.0%  0.01s  scmutil.py:     callcatch         line 155:  return func()
    | 100.0%  0.01s  dispatch.py:    _runcatchfunc     line 432:  return 
_dispatch(req)
    | 100.0%  0.01s  dispatch.py:    _dispatch         line 1179:  repo = 
hg.repository(
    | 100.0%  0.01s  hg.py:          repository        line 221:  peer = 
_peerorrepo(
    | 100.0%  0.01s  hg.py:          _peerorrepo       line 188:  obj = 
_peerlookup(path).ins...
    | 100.0%  0.01s  localrepo.py:   instance          line 3227:  return 
makelocalrepository(...
    | 100.0%  0.01s  localrepo.py:   makelocalrepositoryline 683:  return cls(
    | 100.0%  0.01s  localrepo.py:   __init__          line 1262:  
self._extrafilterid = repov...
    | 100.0%  0.01s  util.py:        __getattribute__  line 245:  
self.__spec__.loader.exec_m...
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: exec_moduleline    
      779:
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: get_codeline       
868:
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: path_statsline     
    1012:
    | 100.0%  0.01s  <frozen importlib._bootstrap_external>: _path_statline     
    87:

REPOSITORY
  rHG Mercurial

BRANCH
  default

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

AFFECTED FILES
  mercurial/statprof.py
  tests/test-profile.t

CHANGE DETAILS

diff --git a/tests/test-profile.t b/tests/test-profile.t
--- a/tests/test-profile.t
+++ b/tests/test-profile.t
@@ -100,6 +100,8 @@
 
   $ hg --profile --config profiling.statformat=hotpath sleep 2>../out || cat 
../out
   $ cat ../out | statprofran
+  $ grep sleepext.py ../out
+  .* [0-9.]+%  [0-9.]+s  sleepext.py:\s*sleep           line 7:  time\.sleep.* 
(re)
 
   $ hg --profile --config profiling.statformat=json sleep 2>../out || cat 
../out
   $ cat ../out
diff --git a/mercurial/statprof.py b/mercurial/statprof.py
--- a/mercurial/statprof.py
+++ b/mercurial/statprof.py
@@ -732,6 +732,9 @@
                     i += 1
                 if i < len(stack):
                     child.add(stack[i:], time)
+            else:
+                # Normally this is done by the .add() calls
+                child.count += time
 
     root = HotNode(None)
     lasttime = data.samples[0].time
@@ -749,12 +752,8 @@
         ]
         if site:
             indent = depth * 2 - 1
-            filename = b''
-            function = b''
-            if len(node.children) > 0:
-                childsite = list(pycompat.itervalues(node.children))[0].site
-                filename = (childsite.filename() + b':').ljust(15)
-                function = childsite.function
+            filename = (site.filename() + b':').ljust(15)
+            function = site.function
 
             # lots of string formatting
             listpattern = (



To: spectral, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to