Mercurial > public > mercurial-scm > hg
diff mercurial/statprof.py @ 42423:0ae593e791fb
profiling: show actual time spent in hotpath display
To get, for instance:
...
\ 6.6% 4.08s lock.py: __exit__ line 1566: ...
| 6.5% 4.01s exchange.py: close line 1191: ...
| 6.5% 4.01s transaction.py: _active line 1443: ...
| 6.5% 4.01s transaction.py: close line 47: ...
| 6.2% 3.84s scmutil.py: wrapped line 529: ...
| 6.2% 3.81s localrepo.py: wrapper line 2114: ...
| 6.2% 3.81s localrepo.py: updatecaches line 177: ...
...
instead of:
...
\ 6.6% lock.py: __exit__ line 1566: ...
| 6.5% exchange.py: close line 1191: ...
| 6.5% transaction.py: _active line 1443: ...
| 6.5% transaction.py: close line 47: ...
| 6.2% scmutil.py: wrapped line 529: ...
| 6.2% localrepo.py: wrapper line 2114: ...
| 6.2% localrepo.py: updatecaches line 177: ...
...
I find that if it's not displayed, I frequently end up estimating the
numbers by hand.
Differential Revision: https://phab.mercurial-scm.org/D6477
author | Valentin Gatien-Baron <vgatien-baron@janestreet.com> |
---|---|
date | Wed, 05 Jun 2019 12:51:21 -0400 |
parents | ae189674bdad |
children | 3f81d58aae25 |
line wrap: on
line diff
--- a/mercurial/statprof.py Wed Jun 05 14:29:44 2019 -0700 +++ b/mercurial/statprof.py Wed Jun 05 12:51:21 2019 -0400 @@ -678,6 +678,7 @@ for sample in data.samples: root.add(sample.stack[::-1], sample.time - lasttime) lasttime = sample.time + showtime = kwargs.get(r'showtime', True) def _write(node, depth, multiple_siblings): site = node.site @@ -695,7 +696,9 @@ # lots of string formatting listpattern = ''.ljust(indent) +\ ('\\' if multiple_siblings else '|') +\ - ' %4.1f%% %s %s' + ' %4.1f%%' +\ + (' %5.2fs' % node.count if showtime else '') +\ + ' %s %s' liststring = listpattern % (node.count / root.count * 100, filename, function) codepattern = '%' + ('%d' % (55 - len(liststring))) + 's %d: %s'