使用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 相关文章推荐
python每次处理固定个数的字符的方法总结
Jan 29 Python
python网络编程实例简析
Sep 26 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
pyqt 多窗口之间的相互调用方法
Jun 19 Python
如何在Django配置文件里配置session链接
Aug 06 Python
python生成requirements.txt的两种方法
Sep 18 Python
python中with语句结合上下文管理器操作详解
Dec 19 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Pycharm中切换pytorch的环境和配置的教程详解
Mar 13 Python
python实现每天自动签到领积分的示例代码
Aug 18 Python
Python torch.flatten()函数案例详解
Aug 30 Python
Python+Matplotlib+LaTeX玩转数学公式
Feb 24 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
图象函数中的中文显示
2006/10/09 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
PHP设计模式之代理模式的深入解析
2013/06/13 PHP
php实现图片转换成ASCII码的方法
2015/04/03 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
一个XML格式数据转换为图表的例子
2010/02/09 Javascript
javascript之学会吝啬 精简代码
2010/04/25 Javascript
jquery加载页面的方法(页面加载完成就执行)
2011/06/21 Javascript
jQuery 中使用JSON的实现代码
2011/12/01 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
js仿iphone秒表功能 计算平均数
2017/01/11 Javascript
用 js 的 selection range 操作选择区域内容和图片
2017/04/18 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
15 分钟掌握vue-next响应式原理
2019/10/13 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
javascript 函数的暂停和恢复实例详解
2020/04/25 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
python使用sqlite3时游标使用方法
2018/03/13 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
python顺序执行多个py文件的方法
2019/06/29 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
Django admin组件的使用
2020/10/24 Python
Jones New York官网:美国女装品牌,受白领女性欢迎
2019/11/26 全球购物
领导视察欢迎词
2014/01/15 职场文书
成语的广告词
2014/03/19 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
云冈石窟导游词
2015/02/04 职场文书
服装区域经理岗位职责
2015/04/10 职场文书
正规欠条模板
2015/07/03 职场文书
运动会新闻报道稿
2015/07/22 职场文书