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

最新文章

  1. Codeforces Round #354 (Div. 2) ABCD
  2. SpringMVC 处理数据模型
  3. 三天学会HTML5 ——多媒体元素的使用
  4. spring 事务管理方式及配置
  5. SSE:服务器发送事件,使用长链接进行通讯
  6. Java 枚举&注解
  7. 【转】windows上安装gvim
  8. ExtJs中处理时间,出现NaN-NaN-NaN的解决方式
  9. PC和单片机通过MODBUS RTU通信
  10. JS 通过点击事件动态添加文本框
  11. WCF调用问题
  12. nginx源代码学习资源(不断更新)
  13. Boost下载安装编译配置使用指南(含Windows和Linux
  14. Mac 下格式化U盘
  15. 百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)
  16. 自学Zabbix3.5.1-监控项item-key详解
  17. ●BZOJ 2560 串珠子
  18. 491. Increasing Subsequences
  19. spring boot + embed tomcat + standalone jar的内存泄露问题
  20. DotNetCore部署(IIS)踩坑记

热门文章

  1. JAVA基础之——数据结构
  2. groovy类、构造函数、方法
  3. 基于easyUI实现登录界面
  4. 分数规划(Bzoj1486: [HNOI2009]最小圈)
  5. [HttpException (0x80004005): 应用程序已预编译,因此不允许使用目录“/App_Code/”。]
  6. GDAL线面互转换
  7. 水库抽样Reservoir Sampling(蓄水池问题)
  8. HandlerThread使用
  9. Unihan(统汉字)常用字段介绍
  10. centos下运行python3.6+Django+mysql项目