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用户管理系统的实例讲解
Dec 23 Python
Python tornado队列示例-一个并发web爬虫代码分享
Jan 09 Python
Windows下安装Django框架的方法简明教程
Mar 28 Python
Python简单生成随机数的方法示例
Mar 31 Python
pandas object格式转float64格式的方法
Apr 10 Python
Python subprocess库的使用详解
Oct 26 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
Python模块汇总(常用第三方库)
Oct 07 Python
python opencv实现信用卡的数字识别
Jan 12 Python
用python解压分析jar包实例
Jan 16 Python
python如何实现DES加密
Sep 21 Python
Python  Asyncio模块实现的生产消费者模型的方法
Mar 01 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
神族 Protoss 剧情介绍
2020/03/14 星际争霸
php数据库连接时容易出错的特殊符号问题
2010/09/01 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
2013/04/28 PHP
win7下memCache的安装过程(具体操作步骤)
2013/06/28 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
JQuery的一些小应用收集
2010/03/27 Javascript
Javascript图像处理—为矩阵添加常用方法
2012/12/27 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
jQuery实现鼠标选文字发新浪微博的方法
2016/04/02 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
完美实现js焦点轮播效果(一)
2017/03/07 Javascript
jQuery访问浏览器本地存储cookie、localStorage和sessionStorage的基本用法
2017/10/20 jQuery
axios使用拦截器统一处理所有的http请求的方法
2018/11/02 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
Python日期时间对象转换为字符串的实例
2018/06/22 Python
Python设计模式之享元模式原理与用法实例分析
2019/01/11 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
Python爬虫爬取、解析数据操作示例
2020/03/27 Python
tensorflow使用freeze_graph.py将ckpt转为pb文件的方法
2020/04/22 Python
Python类super()及私有属性原理解析
2020/06/15 Python
C#里面如何判断一个Object是否是某种类型(如Boolean)?
2016/02/10 面试题
党的群众路线查摆剖析材料
2014/10/10 职场文书
优秀党员推荐材料
2014/12/18 职场文书
避暑山庄导游词
2015/02/04 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
Python中使用Lambda函数的5种用法
2021/04/01 Python
python解析json数据
2022/04/29 Python