摘要
最近利用python做仿真,发现程序执行的很慢,和自己的心理预估差别很大,所以想着有没有语句性能的分析的方法了?答案是有。
本文主要参考该篇文章python模块-cProfile和line_profiler(性能分析器)
python自身提供了两种性能分析器,此处只介绍line_profile,因为只有line_profile才可以提供语句行定位。本文仅仅简单介绍使用方法,方便大家快速进行实践,详细内容请看原文。
该方法需要安装第三方库文件:
pip install line_profiler
该库一共提供了两种方式,一种是注解的方式加在函数上方:
@profile
def main():
for i in range(5):
print("good")
if __name__ == '__main__':
main()
在终端使用kernprof -l 文件.py
来执行文件,会将执行日志打印到同级目录下同样文件名.py.lprof
中,
另外可以使用-v
参数实现控制台输出。
kernprof -l -v 文件.py
另外一种方式直接new 一个profile对象,在代码中写相应逻辑进行分析
import line_profiler
import sys
def main():
for i in range(5