使用memory_profiler监测python代码运行时内存消耗方法


Posted in Python onDecember 03, 2018

前几天一直在寻找能够输出python函数运行时最大内存消耗的方式,看了一堆的博客和知乎,也尝试了很多方法,最后选择使用memory_profiler中的mprof功能来进行测量的,它的原理是在代码运行过程中每0.1S统计一次内存,并生成统计图。

具体的使用方式如下:

首先安装memory_profiler和psutil(psutil主要用于提高memory_profile的性能,建议安装)(可使用pip直接安装)

pip install memory_profiler 
pip install psutil

具体运行方式为如下:(在待检测代码所在目录中打开命令行运行如下代码)

mprof run test.py

结果会生成一个.dat文件,如”mprofile_20160716170529.dat”,里面记录了内存随时间的变化

mprof plot

使用该命令以图片的形式展示出来

如果在运行的时候出现如下的gbk解码错误,解决方案是首先进入 memory_profiler.py文件中,找到第1131行,

把with open(filename) as f: 更改成 with open(filename, encoding='utf-8') as f:!!!

UnicodeDecodeError: ‘gbk' codec can't decode byte 0xad in position 337: illegal multibyte sequence

使用memory_profiler监测python代码运行时内存消耗方法

使用memory_profiler监测python代码运行时内存消耗方法

值得注意的是,尽管网上大部分都说在待检测的函数之前加上@profile修饰器,但是不知道为何我在anaconda python3.6的环境里始终加不上这个修饰器,强行加上就报错,没加上也没问题。

Python 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python中的XML库4Suite Server的介绍
Apr 14 Python
python实现自动重启本程序的方法
Jul 09 Python
python通过加号运算符操作列表的方法
Jul 28 Python
举例讲解Python设计模式编程中的访问者与观察者模式
Jan 26 Python
使用PyQtGraph绘制精美的股票行情K线图的示例代码
Mar 14 Python
python实现名片管理系统项目
Apr 26 Python
关于python中的xpath解析定位
Mar 06 Python
Python 操作 PostgreSQL 数据库示例【连接、增删改查等】
Apr 21 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
Python包和模块的分发详细介绍
Jun 19 Python
python 自动刷新网页的两种方法
Apr 20 Python
浅谈pycharm的xmx和xms设置方法
Dec 03 #Python
解决Python运行文件出现out of memory框的问题
Dec 03 #Python
Python装饰器简单用法实例小结
Dec 03 #Python
浅谈pycharm出现卡顿的解决方法
Dec 03 #Python
利用Python实现原创工具的Logo与Help
Dec 03 #Python
对pycharm 修改程序运行所需内存详解
Dec 03 #Python
浅谈pycharm下找不到sqlalchemy的问题
Dec 03 #Python
You might like
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
php中的boolean(布尔)类型详解
2013/10/28 PHP
php使用百度ping服务代码实例
2014/06/19 PHP
关于JavaScript中原型继承中的一点思考
2012/07/25 Javascript
js对象与打印对象分析比较
2013/04/23 Javascript
详解JavaScript中的表单验证
2015/06/16 Javascript
DWR中各种java方法的调用
2016/05/04 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
JS实现中英文混合文字溢出友好截取功能
2018/08/06 Javascript
javascript中函数的写法实例代码详解
2018/10/28 Javascript
详解Vue前端对axios的封装和使用
2019/04/01 Javascript
Vue-router 报错NavigationDuplicated的解决方法
2020/03/31 Javascript
[08:42]DOTA2每周TOP10 精彩击杀集锦vol.2
2014/06/25 DOTA
python中numpy基础学习及进行数组和矢量计算
2017/02/12 Python
解决python3 urllib中urlopen报错的问题
2017/03/25 Python
python中requests爬去网页内容出现乱码问题解决方法介绍
2017/10/25 Python
numpy自动生成数组详解
2017/12/15 Python
Python 实现引用其他.py文件中的类和类的方法
2018/04/29 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
python 数据分析实现长宽格式的转换
2020/05/18 Python
python time.strptime格式化实例详解
2021/02/03 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
联想英国官网:Lenovo英国
2019/07/17 全球购物
英语专业毕业个人求职自荐信
2013/09/21 职场文书
医学专业毕业生个人求职信
2013/12/25 职场文书
幼儿园秋游活动方案
2014/01/21 职场文书
《长相思》听课反思
2014/04/10 职场文书
企业文明单位申报材料
2014/05/16 职场文书
课外活动总结范文
2014/07/09 职场文书
推普周活动总结
2014/08/28 职场文书
党的群众路线整改落实情况汇报
2014/10/28 职场文书
幼儿园六一儿童节主持词
2015/06/30 职场文书
Python NumPy灰度图像的压缩原理讲解
2021/08/04 Python
浅谈MySQL函数
2021/10/05 MySQL
Windows下载并安装MySQL8.0.x 版本的完整教程
2022/04/10 MySQL