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使用MySQLdb for Python操作数据库教程
Oct 11 Python
Python中比较特别的除法运算和幂运算介绍
Apr 05 Python
浅谈Python的Django框架中的缓存控制
Jul 24 Python
Python的时间模块datetime详解
Apr 17 Python
Python tkinter模块弹出窗口及传值回到主窗口操作详解
Jul 28 Python
使用apidocJs快速生成在线文档的实例讲解
Feb 07 Python
Python简单定义与使用二叉树示例
May 11 Python
Python之pymysql的使用小结
Jul 01 Python
python开头的coding设置方法
Aug 08 Python
django 实现celery动态设置周期任务执行时间
Nov 19 Python
打包PyQt5应用时的注意事项
Feb 14 Python
Python用Jira库来操作Jira
Dec 28 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数学运算函数大汇总(经典值得收藏)
2016/04/01 PHP
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
jQuery取消ajax请求的方法
2015/06/09 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
angular route中使用resolve在uglify压缩后问题解决
2016/09/21 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
Vue自定义指令拖拽功能示例
2017/02/17 Javascript
js oncontextmenu事件使用详解
2017/03/25 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
详解ES6 系列之异步处理实战
2018/10/26 Javascript
微信实现自动跳转到用其他浏览器打开指定APP下载
2019/02/15 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
Python中的作用域规则详解
2015/01/30 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python实现Linux的find命令实例分享
2017/06/04 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
Python中的上下文管理器和with语句的使用
2018/04/17 Python
django manage.py扩展自定义命令方法
2018/05/27 Python
python一键去抖音视频水印工具
2018/09/14 Python
pow在python中的含义及用法
2019/07/11 Python
python实现简单图书管理系统
2019/11/22 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
澳大利亚在线家具、灯饰和家居装饰店:LivingStyles
2018/11/20 全球购物
电子商务专业实习生自我鉴定
2013/09/24 职场文书
会计专业自我鉴定范文
2013/12/29 职场文书
两只小狮子教学反思
2014/02/05 职场文书
公司建议书怎么写
2014/05/15 职场文书
党的群众路线教育实践活动领导班子整改方案
2014/10/25 职场文书
大学毕业晚会开场白
2015/05/29 职场文书
运动会报道稿大全
2015/07/23 职场文书
mysql在项目中怎么选事务隔离级别
2021/05/25 MySQL
SQL CASE 表达式的具体使用
2022/03/21 SQL Server