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后面的数字表面第几处内存泄漏。