堆分配的初始大小,调整这个值会影响到应用的流畅性和整体ram消耗。这个值越小,系统ram消耗越慢,但是由于初始值较小,一些较大的应用需要扩张这个堆,从而引发gc和堆调整的策略,会应用反应更慢。相反,这个值越大系统ram消耗越快,但是程序更流畅。
-
dalvik.vm.heapgrowthlimit
受控情况下的极限堆(仅仅针对dalvik堆,不包括native堆)大小,dvm heap是可增长的,但是正常情况下dvm heap的大小是不会超过dalvik.vm.heapgrowthlimit的值(非正常情况下面会详细说明)。这个值控制那些受控应用的极限堆大小,如果受控的应用dvm heap size超过该值,则将引发oom(out of memory)。
不受控情况下的极限堆大小,这个就是堆的最大值。不管它是不是受控的。这个值会影响非受控应用的dalvik heap size。一旦dalvik heap size超过这个值,直接引发oom。
在android开发中,如果要使用大堆。需要在manifest中指定android:largeHeap为true。这样dvm heap最大可达dalvik.vm.heapsize。
修改方法:
1、frameworks/base/core/jni/AndroidRuntime.cpp
property_get("dalvik.vm.heapsize", heapsizeOptsBuf+4, "16m");
2、修改/system/build.prop中的配置:dalvik.vm.heapsize=32m
修改build.prop方法:http://blog.csdn.net/thl789/article/details/7014300
阅读(1739) | 评论(0) | 转发(0) |