python 利用cProfile进行性能分析

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 分析器

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值