前言
在进行模型测试过程中,我们通常需要知道整个预测过程所消耗的时间与空间,以及哪个部分存在瓶颈,才能进行后续的优化。因此,本文介绍我常用的性能分析工具--line_profiler与memory_profiler。
一、时间分析--line_profiler模块
1.1 安装
$ pip3 install line_profiler
1.2 用法
line_profiler使用装饰器(@profile)标记需要调试的函数。用kernprof运行代码,被选函数每一行花费的cpu时间以及其他信息就会被记录下来。
# demo.py
@profile
def foo():
task = []
for a in range(0, 101):
for b in range(0, 101):
if a + b == 100:
task.append((a, b))
return task
@profile
def run():
for item in foo():
pass
if __name__ == '__main__':
run()
运行下面的命令
kernprof -l -v demo.py
-l表示逐行分析,-v用于输出。
同时会输出一个文件:demo.py.lprof,后期可以对.lprof文件进行分析输出结果。
python -m line_profiler demo.py.lprof
1.3 结果分析
Wrote profile