安装 line_profiler 和 memory_profiler
pip install --pre line_profiler
pip install memory_profiler
测试示例:
新建文件 Timefn.py
from functools import wraps
import time
@profile
def timefn(fn):
@wraps(fn)
def measure_time(*args, **kwargs):
t1 = time.time()
result = fn(*args, **kwargs)
t2 = time.time()
print("@timefn:" + fn.__name__ + " took " + str(t2 - t1) + " seconds.")
print("func_name: "+ fn.__name__)
return result
return measure_time
@timefn
def test():
print("666")
if __name__ == "__main__":
test()
修饰器(装饰器)
@profile
在这里测试的是 timefn() 函数的CPU开销,逐行的。
运行时的命令为:
kernprof -l -v Timefn.py
注意有些教材说是 kernprof.py 开头,实际上现在版本不要.py了。
=================================================================
内存占用的诊断也不麻烦。
python -m memory_profiler Timefn.py
即可。
修饰器同上。