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中__init__()方法的高级应用
May 11 Python
python通过apply使用元祖和列表调用函数实例
May 26 Python
Python多进程机制实例详解
Jul 02 Python
python+matplotlib实现礼盒柱状图实例代码
Jan 16 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
python实现关闭第三方窗口的方法
Jun 28 Python
Numpy 中的矩阵求逆实例
Aug 26 Python
Python读写文件模式和文件对象方法实例详解
Sep 17 Python
Windows系统下pycharm中的pip换源
Feb 23 Python
python读取xml文件方法解析
Aug 04 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
php 清除网页病毒的方法
2008/12/05 PHP
jQuery 获取对象 根据属性、内容匹配, 还有表单元素匹配
2010/05/31 Javascript
运算符&&的三个不同层次
2013/04/07 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
JavaScript实现的一个日期格式化函数分享
2014/12/06 Javascript
node.js中的fs.openSync方法使用说明
2014/12/17 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
IONIC自定义subheader的最佳解决方案
2016/09/22 Javascript
js实现登录框鼠标拖拽效果
2017/03/09 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
解决LayUI数据表格复选框不居中显示的问题
2019/09/25 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
[01:05:40]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS DT第三场
2014/05/24 DOTA
[08:47]2018国际邀请赛 OG战队举杯时刻
2018/08/29 DOTA
python模块之StringIO使用示例
2015/04/08 Python
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
python中将zip压缩包转为gz.tar的方法
2018/10/18 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python3实现对列表按元组指定列进行排序的方法分析
2018/12/22 Python
python函数声明和调用定义及原理详解
2019/12/02 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
2020/09/28 Python
利用CSS3实现进度条的两种姿势详解
2017/03/21 HTML / CSS
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
linux面试相关问题
2012/08/11 面试题
linux面试题参考答案(4)
2013/01/28 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
玲玲的画教学反思
2014/02/04 职场文书
农村产权制度改革实施方案
2014/03/21 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
2015年售票员工作总结
2015/04/29 职场文书
全家福照片寄语怎么写?
2019/04/02 职场文书