Art虚拟机内存抽象(2)--LargeObjectSpace

Large Object Space

一、基本定义

       Art虚拟机内存抽象(2)--LargeObjectSpace

 

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中分配的,看来还是不对啊。