android+eclipse+tracker相关

link:http://www.open-open.com/lib/view/open1449216889405.html,http://www.cnblogs.com/yejiurui/p/3472765.html

Eclipse 之 DDMS看手机程序内存占用

Eclipse 可以通过 DDMS 检测内存,但是要在 Eclipse 中检测 CPU 占用需要安装插件,我试用了插件 APT 发现并不好用,因此就不介绍了。下面介绍在 Eclipse 中通过 DDMS 检测内存使用情况。

  • 手机连接电脑开启 USB 调试模式,并打开 Eclipse

  • 点击工具栏 Window -> Open Perspective -> Other -> DDMS,如下图:

  • 标注 1 区域为当前虚拟机上的程序列表,选择要检测的程序,点击标注 3 给改程序设置 heap Updates,在标注 2 Heap 视图中点击 Cause GC 就可以看到该程序的内存使用情况。

如何查看内存呢?先看下图:


这个就是当前应用的内存占用,allocated 是已经分配的内存 free是空闲内存,

heap size 是虚拟机分配的 不是固定值
heap  size 的最大值跟手机相关的

如何才能知道我们的程序是否有内存泄漏的可能性呢。这里需要注意一个值:Heap视图中部有一个Type叫做data object,即数据对象,也就是我们的程序中大量存在的类类型的对象。在 data object一行中有一列是“ Total Size”,其值就是当前进程中所有Java数据对象的内存总量,一般情况下,这个值的大小决定了是否会有内存泄漏。可以这样判断:
  1.  不断的操作当前应用,同时注意观察data object的Total Size值;
  2. 正常情况下Total Size值都会稳定在一个有限的范围内,也就是说由于程序中的的代码良好,没有造成对象不被垃圾回收的情况,所以说虽然我们不断的操作会不断的生成很多对 象,而在虚拟机不断的进行GC的过程中,这些对象都被回收了,内存占用量会会落到一个稳定的水平;
  3. 反之如果代码中存在没有释放对象引用的情况,则data object的Total Size值在每次GC后不会有明显的回落,随着操作次数的增多Total Size的值会越来越大,直到到达一个上限后导致进程被kill掉。
  4. 此处已system_process进程为例,在我的测试环境中system_process进程所占用的内存的data objectTotal Size正常情况下会稳定在2.2~2.8之间,而当其值超过3.55后进程就会被kill。

通过linux命令来查看                                                          

常用的命令有

adb shell

ps 是看进程的

top命令是看占用率的






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值