dalvik.vm.heapstartsize
堆分配的初始大小,调整这个值会影响到应用的流畅性和整体ram消耗。这个值越小,系统ram消耗越慢,但是由于初始值较小,一些较大的应用需要扩张这个堆,从而引发gc和堆调整的策略,会应用反应更慢。相反,这个值越大系统ram消耗越快,但是程序更流畅。
dalvik.vm.heapgrowthlimit
极限堆大小,dvm heap是可增长的,但是正常情况下dvm heap的大小是不会超过dalvik.vm.heapgrowthlimit的值。如果受控的应用dvm heap size超过该值,则将引发oom。
dalvik.vm.heapsize
使用大堆时,极限堆大小。一旦dalvik heap size超过这个值,直接引发oom。在android开发中,如果要使用大堆,需要在manifest中指定android:largeHeap为true。这样dvm heap最大可达dalvik.vm.heapsize。
查看虚拟机参数命令:
adb shell cat /system/build.prop|grep dalvik
无权限的话 可以通过如下命令来查看:
adb shell getprop dalvik.vm.heapstartsize
adb shell getprop dalvik.vm.heapgrowthlimit
adb shell getprop dalvik.vm.heapsize
也可通过代码获取参数:
ActivityManager activityManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); int memClass = activityManager.getMemoryClass(); int memLargeClass = activityManager.getLargeMemoryClass();