内存分析与内存泄漏检测

16 篇文章 1 订阅

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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值