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实例之wxpython中Frame使用方法
Jun 09 Python
Python遍历文件夹和读写文件的实现方法
May 10 Python
python+pillow绘制矩阵盖尔圆简单实例
Jan 16 Python
python根据unicode判断语言类型实例代码
Jan 17 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Python OpenCV处理图像之图像像素点操作
Jul 10 Python
对Python 多线程统计所有csv文件的行数方法详解
Feb 12 Python
python scipy卷积运算的实现方法
Sep 16 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python实现简单石头剪刀布游戏
Oct 24 Python
Python用any()函数检查字符串中的字母以及如何使用all()函数
Apr 14 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程序效率优化的一些策略小结
2010/07/17 PHP
PHP在线书签系统分享
2016/01/04 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP7 foreach() 函数修改
2021/03/09 PHP
jQuery 1.5 源码解读 面向中高阶JSER
2011/04/05 Javascript
基于Unit PNG Fix.js有时候在ie6下不正常的解决办法
2013/06/26 Javascript
jQuery中操控hidden、disable等无值属性的方法
2014/01/06 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
Angularjs 基础入门
2014/12/26 Javascript
javascript实现炫酷的拖动分页
2015/05/11 Javascript
详解jQuery中的deferred对象的使用(一)
2016/05/27 Javascript
angularJS Provider、factory、service详解及实例代码
2016/09/21 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
js使用highlight.js高亮你的代码
2017/08/18 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
浅析Node.js非对称加密方法
2018/01/29 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
vue中input的v-model清空操作
2019/09/06 Javascript
vue 中几种传值方法(3种)
2019/11/12 Javascript
js实现div色块碰撞
2020/01/16 Javascript
如何在面试中手写出javascript节流和防抖函数
2020/10/22 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
python中将字典形式的数据循环插入Excel
2018/01/16 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
python实现简单名片管理系统
2018/11/30 Python
python3+PyQt5 数据库编程--增删改实例
2019/06/17 Python
python顺序执行多个py文件的方法
2019/06/29 Python
python批量图片处理简单示例
2019/08/06 Python
Python3 翻转二叉树的实现
2019/09/30 Python
canvas压缩图片以及卡片制作的方法示例
2018/12/04 HTML / CSS
自我鉴定范文300字
2013/10/01 职场文书
《生命 生命》教学反思
2014/04/19 职场文书
光荣之路观后感
2015/06/12 职场文书
党纪处分决定书
2015/06/24 职场文书
如何用JavaScipt测网速
2021/05/09 Javascript