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爬虫框架Scrapy安装使用步骤
Apr 01 Python
介绍Python中几个常用的类方法
Apr 08 Python
python实现二叉查找树实例代码
Feb 08 Python
python的继承知识点总结
Dec 10 Python
Python 确定多项式拟合/回归的阶数实例
Dec 29 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
Aug 26 Python
Python的缺点和劣势分析
Nov 19 Python
python3实现弹弹球小游戏
Nov 25 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
django 外键创建注意事项说明
May 20 Python
Python正则re模块使用步骤及原理解析
Aug 18 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 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 版获取重定向后的地址(代码)
2013/06/26 PHP
PHP实现克鲁斯卡尔算法实例解析
2014/08/22 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
PHP常见的几种攻击方式实例小结
2019/04/29 PHP
event.srcElement+表格应用
2006/08/29 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
jQuery学习2 选择器的使用说明
2010/02/07 Javascript
js 可拖动列表实现代码
2011/12/13 Javascript
jQuery计算textarea中文字数(剩余个数)的小程序
2013/11/28 Javascript
手机端网页点击链接触发自动拨打或保存电话的示例代码
2014/08/15 Javascript
jQuery中triggerHandler()方法用法实例
2015/01/19 Javascript
JS仿Windows开机启动Loading进度条的方法
2015/02/26 Javascript
javascript限制文本框输入值类型的方法
2015/05/07 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
jquery使用EasyUI Tree异步加载JSON数据(生成树)
2017/02/11 Javascript
利用Three.js如何实现阴影效果实例代码
2017/09/26 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
js实现全选反选不选功能代码详解
2019/04/24 Javascript
关于vue利用postcss-pxtorem进行移动端适配的问题
2019/11/20 Javascript
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
python实现文本去重且不打乱原本顺序
2016/01/26 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
2020/04/20 Python
MATCHESFASHION.COM美国官网:英国奢侈品零售商
2018/10/29 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
Linux中如何用命令创建目录
2015/01/12 面试题
新媒传信软件测试面试题
2013/02/24 面试题
小学模范班主任事迹材料
2014/05/13 职场文书
企业文化演讲稿
2014/05/20 职场文书
中药学专业毕业生推荐信
2014/07/10 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
win10输入法不见了只能打出字母怎么解决?
2022/08/05 数码科技
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android