vm 内存管理系统(优化)
发布时间
阅读量:
阅读量
什么是Heap(堆)
Dalvik虚拟机中的堆本质上是一块匿名共享内存区域。在libc库中存在一个称为mspace的概念,可通过调用libc提供的create_mspace_with_base函数来创建一个mspace对象,并借助以mspace_为前缀的系列函数对其进行管理。例如,可以使用mspace_malloc和mspace_bulk_free等函数,在特定的mspace中完成内存的分配与释放操作。
dvmAllocRegion函数的主要功能是调用ashmem_create_region函数,用于生成一段连续的匿名共享内存,其容量大小由gDvm.heapMaximumSize参数所指定。
libc中的内存管理函数
dlmalloc实现了两种不同的API接口。其中一种适用于默认的mspace,其函数名称以dl作为前缀,例如dlmalloc、dlrealloc等。当用户定义了专属的mspace后,将采用以mspace为前缀的API进行操作,如mspace_malloc、mspace_realloc等。
/* create_mspace_with_base uses the memory supplied as the initial base
of a new mspace. Part (less than 128*size
全部评论 (0)
还没有任何评论哟~
