使用logcat分析内存泄露

当垃圾回收机在进行垃圾回收之后.会在Logcat中作相对于的输出. 所以我们也可以通过这些信息来判断是否存在内存泄露问题

gc说明

一,上面消息的第一个部分产生GC的原因,一共有四种类型

  1. GC_CONCURRENT 当你的堆内存快被用完的时候,就会触发这个GC回收
  2. GC_FOR_MALLOC 堆内存已经满了,同时又要试图分配新的内存,所以系统要回收内存
  3. GC_EXTERNAL_ALLOC 在Android3.0 (Honeycomb)以前,释放通过外部内存(比如在2.3以前,产生的Bitmap对象存储在Native Memory中)时产生.Android3.0和更高版本中不再有这种类型的内存分配了.
  4. GC_EXPLICIT 调用System.gc时产生,上图中就是点击Cause GC按钮手动触发垃圾回收器产生的log信息

freed 1413K表示GC释放了1413K的内存

20% free 9349K/11644K 20%表示目前可分配内存占的比例 9349K表示当前活动对象所占内存 11644K表示Heap的大小

paused 8ms + 3ms, total 71ms 则表示触发GC应用暂停的时间和GC总共消耗的时间

有了这些log信息就可以知道GC运行几次以后有没有成功释放出一些内存. 如果分配出去的内存在持续增加.那么很明显存在内存泄露. 如下存在内存泄露的Log信息 很明显Heap中空闲内存占总Heap的比例在缩小.Heap中活动对象所占的内存在增加.

输入图片说明

转载于:https://my.oschina.net/tanghaoo/blog/652121

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值