系统中可以在prop中配置dalvik堆的有关设定。具体设定由如下三个属性来控制
数据在system/build.prop文件里存储
-dalvik.vm.heapstartsize
但是由于初始值较小,一些较大的应用需要扩张这个堆,从而引发gc和堆调整的策略,会应用反应更慢。
相反,这个值越大系统ram消耗越快,但是程序更流畅。
-dalvik.vm.heapgrowthlimit
dvm heap的大小是不会超过dalvik.vm.heapgrowthlimit的值(非正常情况下面会详细说明)。这个值控制那
些受控应用的极限堆大小,如果受控的应用dvm heap size超过该值,则将引发oom(out of memory)。
-dalvik.vm.heapsize
heap size。一旦dalvik heap size超过这个值,直接引发oom。
开始给一碗
一般人最多吃三碗
虎背熊腰的大汉最多能吃五碗
-
- static
void *tryMalloc( size_tsize) - {
-
void *ptr; -
-
-
if (size >= gDvm.heapGrowthLimit) { -
LOGW("%zd byte ,allocation exceeds the %zd byte maximum heap size" -
size, gDvm.heapGrowthLimit); -
ptr = NULL; -
goto collect_soft_refs; -
}