使用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使用htpasswd实现基本认证授权的例子
Jun 10 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
浅谈配置OpenCV3 + Python3的简易方法(macOS)
Apr 02 Python
Python中XlsxWriter模块简介与用法分析
Apr 24 Python
情人节快乐! python绘制漂亮玫瑰
Aug 18 Python
python ddt数据驱动最简实例代码
Feb 22 Python
django项目登录中使用图片验证码的实现方法
Aug 15 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Pytorch转onnx、torchscript方式
May 25 Python
Python利用Xpath选择器爬取京东网商品信息
Jun 01 Python
详解Pycharm安装及Django安装配置指南
Sep 15 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
Nov 06 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
应用开发中涉及到的css和php笔记分享
2011/08/02 PHP
PHP邮件发送类PHPMailer用法实例详解
2014/09/22 PHP
php银联网页支付实现方法
2015/03/04 PHP
php实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
jQuery+ajax实现顶一下,踩一下效果
2010/07/17 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
按给定几率进行随机抽取的js代码
2010/12/28 Javascript
JavaScript实现简单图片滚动附源码下载
2014/06/17 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
javascript表单验证和Window详解
2014/12/11 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
vue element-ui 绑定@keyup事件无效的解决方法
2018/03/09 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
[36:41]完美世界DOTA2联赛循环赛FTD vs Magma第一场 10月30日
2020/10/31 DOTA
python缩进区别分析
2014/02/15 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
2015/04/01 Python
python实现函数极小值
2019/07/10 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
Python 代码调试技巧示例代码
2020/08/11 Python
初中生期末考试的自我评价
2013/12/17 职场文书
致裁判员加油稿
2014/02/08 职场文书
幼儿园开学寄语
2014/04/03 职场文书
《狼和小羊》教学反思
2014/04/20 职场文书
学习三严三实对照检查材料思想汇报
2014/09/22 职场文书
2015元旦文艺汇演主持稿(开场白+结束语)
2014/12/14 职场文书
优秀团员事迹材料
2014/12/25 职场文书
乱世佳人观后感
2015/06/08 职场文书
演讲开头怎么书写?
2019/08/06 职场文书
导游词之江西赣州
2019/10/15 职场文书
HAM-2000摩机图
2021/04/22 无线电
JS实现九宫格拼图游戏
2022/06/28 Javascript