Android GC深度分析

        今天发现个有趣的现象, 点击DDMS Monitor的initiate gc按钮和调用System.gc的效果不同。 ”initiate gc“按钮的效果更明显, 即内存下降更多。 我在想这个”initiate gc“是怎么做到的???

      PS: 代码调用gc实际上是给虚拟机发个信号, 并不能立刻执行gc; 而Android Studio的这个按钮会马上执行gc! 所有在检查内存泄漏后要点击“initate gc”按钮, 该按钮能释放不可达对象。

         

 VS   在Activity的onDestory函数中显示触发gc。

    @Override
    protected void onDestroy() {
        super.onDestroy();

        Runtime.getRuntime().gc();
    }

      备注:Runtime.getRuntime.gc()和System.gc()可以理解为一个东西, 只是写法不同而已。

      从二者的日志开始分析, 使用小米4手机、MIUI8、Android6.0系统测试。 点击“Init

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值