Art虚拟机内存抽象(2)--LargeObjectSpace
Large Object Space
一、基本定义
1、live_bitmap_ 与 mark_bitmap_ 是用于垃圾收集标记的
2、LargeObjectSpace分为两种,LargeObjectMapSpace与FreeListSpace
mapSpace这一种,内存不是连续的
FreeListSpace这一种,内存是连续的
3、看好mirror::Object *Alloc 接口,该接口就是用于内存分配对象的
4、分配的对象,还是存在于LargeObjectSpace空间中的。同时,也可以提出一个问题,都有哪些Space抽象,还实现了Alloc接口呢?
问题的答案就是: BumpPointerSpace,ZygoteSpace,RegionSpace,RosAllocSpace,MemoryToolMallocSpace
这几种Space,再类别上面肯定是不同的
另外,还有一个关键的ImageSpace,这个里面是没有Alloc接口的,就是它是不能够分配对象的
5、很关键,这里初探了art的对象分配,与释放
本来想着很简单,对象都是从LargeObjectSpace中分配的,看来还是不对啊。