heapsize配置

来自个人维基
跳转至: 导航搜索
PRODUCT_PROPERTY_OVERRIDES += \
????dalvik.vm.heapstartsize=5m \
????dalvik.vm.heapgrowthlimit=48m \
????dalvik.vm.heapsize=128m \
????dalvik.vm.heaptargetutilization=0.75 \
????dalvik.vm.heapminfree=512k \
????dalvik.vm.heapmaxfree=2m

[dalvik.vm.heapgrowthlimit]: [64m] --- 这个值表明一个应用java层的heapsize 限制是64MB,即超过这个大小就会报outofmemory异常

[dalvik.vm.heapsize]: [128m] --- 如果这个应用具有largeheap属性,需要更大的heapsize,如launcher,就会给他更大的可分配空间,这里是128M.

如果没有理解错误的话,S7T 启动一个APP时需要分配 128M的内存,对于一个只有512M RAM的手机而言,杀死进程的需求就非常正常了。

--- 一个APP启动时,虚拟机会默认给它分配一个很小的堆空间,如8MB,当后面需要的大小超过这个值,就会翻倍,如8MB -> 16MB,一直到64MB封顶。


内存升为1G RAM,就对heapsize和heapgrowthlimit的大小升一倍的方式,是否合理?

--- 内存增加一倍,相应可分配的空间也增加一倍,这个是合理的。


另外,我不知道我们设定的这个值dalvik.vm.heapstartsize 是多少?

--- dalvik.vm.heapstartsize 这个值就是上面提到的启动时默认分配的初始大小,如果没有配置的话默认是8MB(2.3以前好像是4MB)