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 相关文章推荐
删除DataFrame中值全为NaN或者包含有NaN的列或行方法
Nov 06 Python
python自制包并用pip免提交到pypi仅安装到本机【推荐】
Jun 03 Python
详解Python 中sys.stdin.readline()的用法
Sep 12 Python
Python对称的二叉树多种思路实现方法
Feb 28 Python
Python爬虫实现模拟点击动态页面
Mar 05 Python
python matplotlib imshow热图坐标替换/映射实例
Mar 14 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
python将音频进行变速的操作方法
Apr 08 Python
Keras:Unet网络实现多类语义分割方式
Jun 11 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
Python特殊属性property原理及使用方法解析
Oct 09 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
菜鸟javascript基础资料整理2
2010/12/06 Javascript
JavaScript中去掉数组中的重复值的实现方法
2011/08/03 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
详解Angular CLI + Electron 开发环境搭建
2017/07/20 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JS解析后台返回的JSON格式数据实例
2018/08/06 Javascript
深入Vue-Router路由嵌套理解
2018/08/13 Javascript
node.js中express模块创建服务器和http模块客户端发请求
2019/03/06 Javascript
jsonp实现百度下拉框功能的方法分析
2019/05/10 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
教你搭建按需加载的Vue组件库(小结)
2019/07/29 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
JavaScript实现刮刮乐效果
2020/11/01 Javascript
python多重继承实例
2014/10/11 Python
Python使用matplotlib绘制动画的方法
2015/05/20 Python
详解Python中最难理解的点-装饰器
2017/04/03 Python
Python实现的弹球小游戏示例
2017/08/01 Python
使用Python对微信好友进行数据分析
2018/06/27 Python
python实现生成字符串大小写字母和数字的各种组合
2019/01/01 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
2019/02/17 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
2019/03/14 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
python实现月食效果实例代码
2019/06/18 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
Python下opencv图像阈值处理的使用笔记
2019/08/04 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
Python3 Tensorlfow:增加或者减小矩阵维度的实现
2020/05/22 Python
Python通过字典映射函数实现switch
2020/11/06 Python
如何用H5实现一个触屏版的轮播器的实例
2017/01/09 HTML / CSS
数据库专业英语
2012/11/30 面试题
《蚕姑娘》教学反思
2014/04/15 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
大学生社会实践活动总结报告
2015/05/06 职场文书
利用Python实现模拟登录知乎
2022/05/25 Python