您的位置:首页 > 其它

内存分析与内存泄漏检测

2015-04-05 16:41 162 查看

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:对象个数

相关文章:Android最佳性能实践(二)——分析内存的使用情况

内存泄漏检测工具(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后面的数字表面第几处内存泄漏。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐