Dalvik虚拟机内存管理与垃圾回收相关

概述

这篇笔记摘抄自老罗的博客:
http://blog.csdn.net/luoshengyang/article/details/41338251
http://blog.csdn.net/luoshengyang/article/details/41822747
Dalvik虚拟机内存分配的底层依赖是基于Doug Lea编写的dlmalloc内存分配器的,在Heap上完成。按照分配规则,没进行一次内存分配都会经过数次尝试:
1. 第一次分配,如果失败,那么进行一次GC,这次GC不回收软引用对象。
2. 第二次分配,如果失败,就增长堆的大小,堆的大小是可以在堆的生长限制之内进行生长的。
3. 第三次分配,如果失败,再进行一次GC,这次GC会收集软引用对象。
4. 第四次分配,如果成功,则返回一个指向内存区域的指针,否则,如果失败,返回空指针并且抛出异常,虚拟机暂停工作。

而在Dalvik虚拟机中,用来分配对象的堆划分为两个部分,一部分叫做Active Heap,另一部分叫做Zygote Heap。


垃圾收集的过程

Dalvik中GC的一些数据结构:
三种情况

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值