cProfile Python性能分析工具使用详解


Posted in Python onJuly 22, 2019

前言

Python自带了几个性能分析的模块:profile、cProfile和hotshot,使用方法基本都差不多,无非模块是纯Python还是用C写的。本文介绍cProfile。

例子

import time
def func1():
  sum = 0
  for i in range(1000000):
    sum += i
def func2():
  time.sleep(10)

func1()
func2()

运行

python -m cProfile del.py

运行结果

cProfile Python性能分析工具使用详解

结果分析

执行了6个函数,总共花费了10.138s,按着运行函数名字排序为结果输出。

运行脚本

python -m cProfile -o del.out del.py

这里以模块方式直接保存profile结果,可以进一步分析输出结果,运行

python -c "import pstats; p=pstats.Stats('del.out'); p.print_stats()"

结果(随机)

cProfile Python性能分析工具使用详解

可以设置排序方式,例如以花费时间多少排序

python -c "import pstats; p=pstats.Stats('del.out'); p.sort_stats('time').print_stats()"

cProfile Python性能分析工具使用详解

sort_stats支持以下参数:

calls, cumulative, file, line, module, name, nfl, pcalls, stdname, time

pstats模块还支持交互式

cProfile Python性能分析工具使用详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中查找excel某一列的重复数据 剔除之后打印
Feb 10 Python
Python实现模拟登录及表单提交的方法
Jul 25 Python
Python实现周期性抓取网页内容的方法
Nov 04 Python
分享Python字符串关键点
Dec 13 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
Jul 01 Python
对python .txt文件读取及数据处理方法总结
Apr 23 Python
Python实现正弦信号的时域波形和频谱图示例【基于matplotlib】
May 04 Python
python实现根据文件关键字进行切分为多个文件的示例
Dec 10 Python
pymysql模块的使用(增删改查)详解
Sep 09 Python
pytorch梯度剪裁方式
Feb 04 Python
PyTorch中Tensor的数据类型和运算的使用
Sep 03 Python
python 决策树算法的实现
Oct 09 Python
python实现大文本文件分割
Jul 22 #Python
python plotly绘制直方图实例详解
Jul 22 #Python
python分割一个文本为多个文本的方法
Jul 22 #Python
在linux系统下安装python librtmp包的实现方法
Jul 22 #Python
django搭建项目配置环境和创建表过程详解
Jul 22 #Python
对python中基于tcp协议的通信(数据传输)实例讲解
Jul 22 #Python
Django使用中间键实现csrf认证详解
Jul 22 #Python
You might like
PHP实现生成唯一会员卡号
2015/08/24 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
js 全兼容可高亮二级缓冲折叠菜单
2010/06/04 Javascript
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
js计算两个时间之间天数差的实例代码
2013/11/19 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
2014/06/05 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
一道优雅面试题分析js中fn()和return fn()的区别
2016/07/05 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
自定义事件解决重复请求BUG的问题
2017/07/11 Javascript
解决element ui select下拉框不回显数据问题的解决
2019/02/20 Javascript
JS根据Unix时间戳显示发布时间是多久前【项目实测】
2019/07/10 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
Python遍历zip文件输出名称时出现乱码问题的解决方法
2015/04/08 Python
Python实现保证只能运行一个脚本实例
2015/06/24 Python
说一说Python logging
2016/04/15 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
python中Lambda表达式详解
2019/11/20 Python
简单介绍django提供的加密算法
2019/12/18 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
如何解决安装python3.6.1失败
2020/07/01 Python
用python制作个音乐下载器
2021/01/30 Python
LightInTheBox西班牙站点:全球商品在线采购
2016/09/22 全球购物
大学生个人自我鉴定
2013/12/03 职场文书
化妆品活动策划方案
2014/05/23 职场文书
指导老师鉴定意见
2015/06/05 职场文书
保外就医申请书范文
2015/08/06 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
教您:房贷工资收入证明应该怎么写?
2019/08/19 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
撤回我也能看到!教你用Python制作微信防撤回脚本
2021/06/11 Python