line_profiler不仅能测试整个函数的运行时间,还能测试函数里每行代码的调用次数、耗时、以及耗时百分比。
anaconda没自带line_profiler,需要安装。
安装
pip install line_profiler
测试代码
from line_profiler import LineProfiler
def jc(n):
'阶乘'
s=1
for i in range(1,n+1):
s*=i
return s
def print10():
'循环打印0-9'
for i in range(10):
print(i)
if __name__ == '__main__':
lp = LineProfiler()#实例化
#测试jc函数性能
lp_wrapper = lp(jc)#输入函数
lp_wrapper(4)#输入函数参数
lp.print_stats()#打印测试结果
#测试print10函数性能
lp_wrapper = lp(print10)#输入函数
lp_wrapper()#函数若无参数直接放空
lp.print_stats()#打印测试结果
运行结果
Hits:调用次数;Time:耗时;Per Hit:每次调用耗时;%Time:耗时百分比