cProfile作用:
主要是用来显示在一次执行过程中,每个函数所需要花费的时间
cProfile是Python自带的性能分析模块,所以直接import导入即可,安装也可参照python其他模块的安装方法。
cProfile用法:
1.在py文件的函数入口main下操作,如:
建议将性能分析结果存入txt类型文件内,亲测执行可用,别的类型没有试过,但应该是一样的道理。
2.在终端下执行如下命令:
python -m cProfile -o 结果保存路径 待测试代码路径 python -m cProfile -s cumulative 待测试代码路径
终端下执行是灵活的,结果可保存也可以不保存,建议保存的原因是终端下对结果的显示行是有限制的,但总归基础命令是“python -m cProfile ...”
cProfile结果解读:
1.首先将txt文件内的内容读出来,读取方式如下:
import pstats p=pstats.Stats('cost_result.txt') p.sort_stats('time').print_stats() #按照时间排序显示其内容,也可按照其他列显示 p.print_stats() #不按时间排序,直接显示内容
内容如下:
会给出一个代码执行消耗的总时间,还有具体到每个包每个函数的总时间
2.cProfile参数含义:
ncalls:表示函数调用的次数;
tottime:表示指定函数的总的运行时间,除掉函数中调用子函数的运行时间;
percall:(第一个percall)等于 tottime/ncalls;
cumtime:表示该函数及其所有子函数的调用运行的时间,即函数开始调用到返回的时间; percall:(第二个percall)即函数运行一次的平均时间,等于 cumtime/ncalls; filename:lineno(function):每个函数调用的具体信息;
具体可参考:Python 分析器