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之类的细节
Oct 13 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
使用python实现ANN
Dec 20 Python
Python 装饰器实现DRY(不重复代码)原则
Mar 05 Python
python pycurl验证basic和digest认证的方法
May 02 Python
详解Pytorch 使用Pytorch拟合多项式(多项式回归)
May 24 Python
Python实现的旋转数组功能算法示例
Feb 23 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
使用apiDoc实现python接口文档编写
Nov 19 Python
Python如何避免文件同名产生覆盖
Jun 09 Python
解析Tensorflow之MNIST的使用
Jun 30 Python
python实现简易名片管理系统
Apr 11 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判断ip黑名单程序代码实例
2014/02/24 PHP
php开发中的页面跳转方法总结
2015/04/26 PHP
PHP 中使用ajax时一些常见错误总结整理
2017/02/27 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
javascript的渐进增强与平稳退化浅谈
2013/11/12 Javascript
对Jquery中的ajax再封装,简化操作示例
2014/02/12 Javascript
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
使用iojs的jsdom库实现同步系统时间
2015/04/20 Javascript
javascript实现实时输出当前的时间
2015/04/27 Javascript
jQuery根据元素值删除数组元素的方法
2015/06/24 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
BootStrap 智能表单实战系列(五) 表单依赖插件处理
2016/06/13 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
jQuery中delegate()方法的用法详解
2016/10/13 Javascript
JavaScript禁止微信浏览器下拉回弹效果
2017/05/16 Javascript
vue.js 双层嵌套for遍历的方法详解, 类似php foreach()
2018/09/07 Javascript
如何使用CSS3和JQuery easing 插件制作绚丽菜单
2019/06/18 jQuery
[02:32]“虐狗”镜头慎点 2016国际邀请赛中国区预选赛现场玩家采访
2016/06/28 DOTA
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
完美解决Python2操作中文名文件乱码的问题
2017/01/04 Python
Python3 XML 获取雅虎天气的实现方法
2018/02/01 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
在Matplotlib图中插入LaTex公式实例
2020/04/17 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
厨房领班竞聘演讲稿
2014/04/23 职场文书
产品发布会策划方案
2014/05/12 职场文书
公司爱心捐款倡议书
2014/05/14 职场文书
商务经理岗位职责
2014/07/30 职场文书
个人四风问题原因分析及整改措施
2014/09/28 职场文书
部门2015年度工作总结
2015/04/29 职场文书
班主任开场白
2015/06/01 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书