在分析Python脚本时,按percall对cProfile输出进行排序


73

我正在使用 python -m cProfile -s calls myscript.py

python -m cProfile -s percall myscript.py 不起作用。

Python文档说“在Stats文档中查找有效的排序值。”:http : //docs.python.org/library/profile.html#module-cProfile,我找不到。



不幸的是,有一个补丁被忽略了:bugs.python.org/issue18795
letmaik

Answers:


102

-s仅使用在sort_stats下找到的键。

calls (call count)
cumulative (cumulative time)
cumtime (cumulative time)
file (file name)
filename (file name)
module (file name)
ncalls (call count)
pcalls (primitive call count)
line (line number)
name (function name)
nfl (name/file/line)
stdname (standard name)
time (internal time)
tottime (internal time)

这是一个例子

python -m cProfile -s tottime myscript.py

8
只是要清理它,对于像我这样的菜鸟,您不要使用引号:)因此,按方法所用时间对方法进行排序的示例是“ python -m cProfile -s tottime myscript.py”
Stan Tatarnykov

4
使用引号没有问题(至少在bash中使用),是吗?该报价由bash命令预处理吃..
Jindra Helcl

1
就Windows而言,不能使用引号。还应注意-按时间和时间排序是一回事。
苏萨
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.