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实现对比不同字体中的同一字符的显示效果
Apr 23 Python
Windows下Eclipse+PyDev配置Python+PyQt4开发环境
May 17 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
python web.py开发httpserver解决跨域问题实例解析
Feb 12 Python
python实现csv格式文件转为asc格式文件的方法
Mar 23 Python
Django rest framework实现分页的示例
May 24 Python
python3基于TCP实现CS架构文件传输
Jul 28 Python
python使用knn实现特征向量分类
Dec 26 Python
Python redis操作实例分析【连接、管道、发布和订阅等】
May 16 Python
windows10 pycharm下安装pyltp库和加载模型实现语义角色标注的示例代码
May 07 Python
python 将列表里的字典元素合并为一个字典实例
Sep 01 Python
python opencv通过按键采集图片源码
May 20 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
yii操作cookie实例简介
2014/07/09 PHP
PHP使用Redis替代文件存储Session的方法
2017/02/15 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
Jquery实现简单的动画效果代码
2012/03/18 Javascript
Package.js  现代化的JavaScript项目make工具
2012/05/23 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
2013/06/08 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
div+css+js实现无缝滚动类似marquee无缝滚动兼容firefox
2013/08/29 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
原生js和jquery分别实现横向导航菜单效果
2016/05/13 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
深究AngularJS之ui-router详解
2017/06/13 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
ReactRouter的实现方法
2021/01/25 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
详解python进行mp3格式判断
2016/12/23 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
Python中利用xpath解析HTML的方法
2018/05/14 Python
Python中单线程、多线程和多进程的效率对比实验实例
2019/05/14 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
2019/06/14 Python
GitHub上值得推荐的8个python 项目
2020/10/30 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
产品工艺师的岗位职责
2013/11/15 职场文书
《小猫刮胡子》教学反思
2014/02/21 职场文书
我的中国梦演讲稿小学篇
2014/08/19 职场文书
普通党员自我剖析材料
2014/10/07 职场文书
国际贸易实务实训报告
2014/11/05 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
python urllib库的使用详解
2021/04/13 Python
golang中的空slice案例
2021/04/27 Golang
pytorch中的numel函数用法说明
2021/05/13 Python