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 相关文章推荐
win7 下搭建sublime的python开发环境的配置方法
Jun 18 Python
Python yield与实现方法代码分析
Feb 06 Python
Python实现求解括号匹配问题的方法
Apr 17 Python
python实现根据指定字符截取对应的行的内容方法
Oct 23 Python
Python3 jupyter notebook 服务器搭建过程
Nov 30 Python
查看python安装路径及pip安装的包列表及路径
Apr 03 Python
python文件写入write()的操作
May 14 Python
Django的用户模块与权限系统的示例代码
Jul 24 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
Python包和模块的分发详细介绍
Jun 19 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
opencv实现图像几何变换
Mar 24 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
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
Jvascript学习实践案例(开发常用)
2012/06/25 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
关于原生js中bind函数的简单实现
2016/08/10 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
html中通过JS获取JSON数据并加载的方法
2017/11/30 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
nodejs简单抓包工具使用详解
2019/08/23 NodeJs
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python两个整数相除得到浮点数值的方法
2015/03/18 Python
python实现的简单FTP上传下载文件实例
2015/06/30 Python
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
windows下pycharm安装、创建文件、配置默认模板
2018/07/31 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
Python partial函数原理及用法解析
2019/12/11 Python
python 定义类时,实现内部方法的互相调用
2019/12/25 Python
Python如何测试stdout输出
2020/08/10 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
纯css实现照片墙3D效果的示例代码
2017/11/13 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
若干个Java基础面试题
2015/05/19 面试题
寒假实习自荐信
2014/01/26 职场文书
恐龙的灭绝教学反思
2014/02/12 职场文书
法语专业求职信
2014/07/20 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
投标售后服务承诺书
2015/04/29 职场文书
小学六一儿童节活动总结
2015/05/05 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis