码迷,mamicode.com
首页 > 其他好文 > 详细

内存分析与内存泄漏检测

时间:2015-04-05 17:30:52      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:

Android


查看所有进程内存占用情况


(1)连接设备,打开USE调试模式

(2)打开命令行,执行命令:adb shell procrank

技术分享

字段说明:

PID:进程id

VSS(Virtual Set Size): 虚拟耗用内存(包含共享库占用的内存)

RSS(Resident Set Size):实际使用物理内存(包含共享库占用的内存)

PSS(Proportional Set Size): 实际使用的物理内存(比例分配共享库占用的内存)

USS(Unique Set Size): 进程独自占用的物理内存(不包含共享库占用的内存)

cmdline:进程名称


查看Heap信息


1.打开Eclipse的DDMS窗口,选择需要查看的应用

2.点击Update Heap

技术分享

3.点击Cause GC按钮,触发Java的内存回收机制,点击后会在Heap窗口显示该进程的堆信息,并定时刷新。

技术分享

字段说明:

Heap Size:堆内存总大小

Allocated:已使用的堆内存大小

Free:空闲的堆内存大小

Used:已使用堆内存大小百分比

Objects:对象个数


内存泄漏检测工具(VLD)


工具下载地址

下载地址1:https://vld.codeplex.com/releases

下载地址2:http://pan.baidu.com/s/1gd7vQnD


安装完成后,使用visual studio创建的项目,默认会包含vld的头文件目录。

技术分享

而且bin目录下的运行库已经自动添加到Path变量中。

技术分享


我们需要做的只是在源码中#include <vld.h>,一般在项目入口文件中包含。

技术分享

这里,我手动制造了内存泄漏。在map.cpp的第10行和第12行。


程序支行结束后,检测到动态分配的内存没有delete或free,在输出—调试窗口中会输出其内存泄漏相关的信息。

技术分享

这里提示在main.cpp第10行发生了内存泄漏,泄漏了8个字节,点击可直接定位到内存泄漏的那行代码。Block后面的数字表面第几处内存泄漏。


内存分析与内存泄漏检测

标签:

原文地址:http://blog.csdn.net/linchaolong/article/details/44888885

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!