Skip to content
Snippets Groups Projects
Commit 068307b638f4 authored by Kyle Lippincott's avatar Kyle Lippincott
Browse files

statprof: fix off-by-one-line error in output

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:
```

Differential Revision: https://phab.mercurial-scm.org/D9510
parent 372409eb5cd1
No related branches found
No related tags found
No related merge requests found
......@@ -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 = (
......
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment