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网络编程学习笔记(五):socket的一些补充
Jun 09 Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 Python
简介Python设计模式中的代理模式与模板方法模式编程
Feb 02 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Python中dict和set的用法讲解
Mar 28 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
tensorflow 实现自定义梯度反向传播代码
Feb 10 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
Jun 23 Python
Python3爬虫中Splash的知识总结
Jul 10 Python
解决c++调用python中文乱码问题
Jul 29 Python
python简单实现9宫格图片实例
Sep 03 Python
python 制作磁力搜索工具
Mar 04 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&java(二)
2006/10/09 PHP
php读取EXCEL文件 php excelreader读取excel文件
2012/12/06 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
PHP之图片上传类实例代码(加了缩略图)
2016/06/30 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
PHP中时间加减函数strtotime用法分析
2017/04/26 PHP
Extjs学习笔记之七 布局
2010/01/08 Javascript
javascript 在firebug调试时用console.log的方法
2012/05/10 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
jQuery+AJAX实现无刷新下拉加载更多
2015/07/03 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
深入理解jQuery 事件处理
2016/06/14 Javascript
BootStrap的table表头固定tbody滚动的实例代码
2016/08/24 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
利用Blob进行文件上传的完整步骤
2018/08/02 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
2020/07/19 Javascript
浅析Python3爬虫登录模拟
2018/02/07 Python
python 重命名轴索引的方法
2018/11/10 Python
对python产生随机的二维数组实例详解
2018/12/13 Python
Python实现滑动平均(Moving Average)的例子
2019/08/24 Python
pytorch 批次遍历数据集打印数据的例子
2019/12/30 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
2020/05/16 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
video.js支持m3u8格式直播的实现示例
2020/05/20 HTML / CSS
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
安踏官方商城:anta.cn
2019/12/16 全球购物
应届生求职信写作技巧
2013/10/24 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
元旦晚会主持词
2014/03/24 职场文书
员工趣味活动方案
2014/08/27 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
乡镇计划生育工作汇报
2014/10/28 职场文书