|
|
heap 初始化的时候large_object_space_type 取值由kDefaultLargeObjectSpaceType 决定,__aarch64__ 架构 USE_ART_LOW_4G_ALLOCATOR为true,取 kFreeList type。
Bump PointerSpace:
提供的内存分配方式是顺序分配,每次新申请的都是上次分配的对象的尾地址紧挨着分配,释放内存都是用AllocSpace的clear方法
|
1(12kb) |
2(8kb) |
3(8kb) |
free |
free |
LargeObjectSpace:
(1)heap 初始化的时候large_object_space_type 取值由kDefaultLargeObjectSpaceType 决定,__aarch64__ 架构 USE_ART_LOW_4G_ALLOCATOR为true,取 kFreeList type。
|
|
(2)根据large_object_space_type的区别再去决定创建的子类,FreeListSpace或者LargeObjectMapSpace ,
|
|
(3)我们是aarch64架构的,会初始化 FreeListSpace ,creat 函数如两个参,一个是名字,第二个是空间大小,这个是由 dalvik.vm.heapsize 配置的,我们系统配置512M
|
|
Regionspace
regionspace会把内存划分区域(region 大小是256kb)去管理,一些重要的对象:
|
|
Region
|
|
|
|