python性能调试过程中最突出的问题就是耗时,性能测试工具有很多,这里介绍cprofile和line_profiler的搭配使用方法。前者返回项目中每个函数的耗时,后者可以分析函数每一行的耗时。
一,cProfile
- cProfile是python默认的性能分析器
- cProfile是一种确定性分析器,只测量CPU时间,并不关心内存消耗和其他与内存相关联的信息。
参数分析:
run(statement, filename=None, sort=-1)
# statement: 需要测试的代码或者函数(函数名)
# fielname: 结果保存的位置, 默认为stdout
# sort: 结果排序方法,常用的有‘cumtime': 累积时间, ’name': 函数名, ‘line': 行号
# 以及下面结果分析里的’ncalls'等
使用方法一:
import re
import cProfile
cProfile.run('re.compile("abc")')
结果分析:
- 第一行:129个函数调用被监控,其中128个是原生调用(不涉及递归)
- ncalls:函数