ncalls:表示函数调用的次数;
tottime:表示指定函数的总的运行时间,除掉函数中调用子函数的运行时间;
percall:(第一个percall)等于 tottime/ncalls;
cumtime:表示该函数及其所有子函数的调用运行的时间,即函数开始调用到返回的时间;
percall:(第二个percall)即函数运行一次的平均时间,等于 cumtime/ncalls;
filename:lineno(function):每个函数调用的具体信息;
def bar():
result = 0
for i in range(1000000):
result += i
return result
from bar import bar
def foo():
result = 0
for i in range(100000):
result += i
for i in range(5):
bar()
return result
if __name__ == '__main__':
foo()
python -m cProfile foo.py
16 function calls in 0.234 seconds
Ordered by: standard name
ncalls tottime percall cumtime percall filename:lineno(function)
1 0.000 0.000 0.000 0.000 bar.py:6(<module>)
5 0.181 0.036 0.227 0.045 bar.py:6(bar)
1 0.000 0.000 0.234 0.234 foo.py:5(<module>)
1 0.003 0.003 0.233 0.233 foo.py:8(foo)
1 0.000 0.000 0.000 0.000 {method 'disable' of '_lsprof.Profiler' objects}
7 0.049 0.007 0.049 0.007 {range}
本系列文章和代码已经作为项目归档到github,仓库地址:jumper2014/PyCodeComplete。大家觉得有帮助就请在github上star一下,你的支持是我更新的动力。什么?你没有github账号?学习Python怎么可以没有github账号呢,快去注册一个啦!