valgrind massif内存分析[转]
valgrind检查内存泄露
#valgrind ./程序
内存泄漏问题,我们有memcheck工具来检查。很爽。但是有时候memcheck工具查了没泄漏,程序一跑,内存还是狂飙。这又是什么问题。。。
其实memcheck检查的内存泄漏只是狭义的内存泄漏,或者说是严格的内存泄漏,也就是说,在程序运行的生命周期内,这部分内存你是彻底释放不了了,即,你失去了这些地址。
其实还有第二种类型的内存泄漏,就是,长期闲置的内存堆积。这部分内存虽然你还保存了地址,想要释放的时候还是能释放。关键就是你忘了释放。。。杯具啊。这种问题memcheck就不给力了。这就引出了第二个内存工具valgrind –tool=massif。
会产生massif.out.****的文件,然后使用
# ms_print massif.out.*** >massif.log
massif 可以的帮我们发现很多问题,比如现实中总是遇到一些内存一直上涨,可以就是没有memory leaker的情况, 其实这样的情况并不奇怪,非常容易发生,比如每次循环的时候你并没有把上次的内存释放,同时不断在后面添加更多的内容,这显然不会有memory leaker,倒是到了一定的程度,自然会发生bad alloc的问题。对于这样的问题massif就可以大显身手,比较一下两个内存的切片,增加的部分自然就发现了。
官方主页教程:http://valgrind.org/docs/manual/ms-manual.html
先看一个图是分析firefox内存使用的:
安装massif-visualizer
massif-visualizer是ubuntu下的图形化分析工具
http://get.ubuntusoft.com/app/massif-visualizer
项目主页:
https://projects.kde.org/projects/extragear/sdk/massif-visualizer
massif-visualizer下载:
http://tel.mirrors.163.com/ubuntu/pool/universe/m/massif-visualizer/
软件包详细信息
:
http://packages.ubuntu.com/massif-visualizer
安装massif-visualizer:
来源: https://blog.csdn.net/liweigao01/article/details/81292184
最新文章
- Codeforces Round #354 (Div. 2) ABCD
- SpringMVC 处理数据模型
- 三天学会HTML5 ——多媒体元素的使用
- spring 事务管理方式及配置
- SSE:服务器发送事件,使用长链接进行通讯
- Java 枚举&;注解
- 【转】windows上安装gvim
- ExtJs中处理时间,出现NaN-NaN-NaN的解决方式
- PC和单片机通过MODBUS RTU通信
- JS 通过点击事件动态添加文本框
- WCF调用问题
- nginx源代码学习资源(不断更新)
- Boost下载安装编译配置使用指南(含Windows和Linux
- Mac 下格式化U盘
- 百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)
- 自学Zabbix3.5.1-监控项item-key详解
- ●BZOJ 2560 串珠子
- 491. Increasing Subsequences
- spring boot + embed tomcat + standalone jar的内存泄露问题
- DotNetCore部署(IIS)踩坑记
热门文章
- JAVA基础之——数据结构
- groovy类、构造函数、方法
- 基于easyUI实现登录界面
- 分数规划(Bzoj1486: [HNOI2009]最小圈)
- [HttpException (0x80004005): 应用程序已预编译,因此不允许使用目录“/App_Code/”。]
- GDAL线面互转换
- 水库抽样Reservoir Sampling(蓄水池问题)
- HandlerThread使用
- Unihan(统汉字)常用字段介绍
- centos下运行python3.6+Django+mysql项目