From 8cdf27c36a5b697396144925b3f61e4802dd3558 Mon Sep 17 00:00:00 2001 From: Carl Shapiro Date: Wed, 19 Jan 2011 12:33:12 -0800 Subject: [PATCH] Add a property for specifying a dalvik heap growth limit. Change-Id: I7334fb720277888df836414834ecf1e8d6b4b579 --- build/phone-hdpi-512-dalvik-heap.mk | 1 - build/phone-hdpi-dalvik-heap.mk | 1 - build/tablet-dalvik-heap.mk | 4 ++-- core/jni/AndroidRuntime.cpp | 8 ++++++++ 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/build/phone-hdpi-512-dalvik-heap.mk b/build/phone-hdpi-512-dalvik-heap.mk index afc45ee11486d..a7f9d326e5a07 100644 --- a/build/phone-hdpi-512-dalvik-heap.mk +++ b/build/phone-hdpi-512-dalvik-heap.mk @@ -19,5 +19,4 @@ PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapstartsize=5m \ - dalvik.vm.smallheapsize=32m \ dalvik.vm.heapsize=32m diff --git a/build/phone-hdpi-dalvik-heap.mk b/build/phone-hdpi-dalvik-heap.mk index ee30b92079cdf..ab33b9654bed5 100644 --- a/build/phone-hdpi-dalvik-heap.mk +++ b/build/phone-hdpi-dalvik-heap.mk @@ -18,5 +18,4 @@ PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapstartsize=5m \ - dalvik.vm.smallheapsize=32m \ dalvik.vm.heapsize=32m diff --git a/build/tablet-dalvik-heap.mk b/build/tablet-dalvik-heap.mk index 9cb2f6bdebc18..37c3ec531a80b 100644 --- a/build/tablet-dalvik-heap.mk +++ b/build/tablet-dalvik-heap.mk @@ -18,5 +18,5 @@ PRODUCT_PROPERTY_OVERRIDES += \ dalvik.vm.heapstartsize=5m \ - dalvik.vm.smallheapsize=48m \ - dalvik.vm.heapsize=48m + dalvik.vm.growthlimit=48m \ + dalvik.vm.heapsize=256m diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index f023e9469578b..342b8840ed513 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -568,6 +568,7 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) char jniOptsBuf[sizeof("-Xjniopts:")-1 + PROPERTY_VALUE_MAX]; char heapstartsizeOptsBuf[sizeof("-Xms")-1 + PROPERTY_VALUE_MAX]; char heapsizeOptsBuf[sizeof("-Xmx")-1 + PROPERTY_VALUE_MAX]; + char heapgrowthlimitOptsBuf[sizeof("-XX:HeapGrowthLimit=")-1 + PROPERTY_VALUE_MAX]; char extraOptsBuf[PROPERTY_VALUE_MAX]; char* stackTraceFile = NULL; bool checkJni = false; @@ -659,6 +660,13 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) opt.optionString = heapsizeOptsBuf; mOptions.add(opt); + strcpy(heapgrowthlimitOptsBuf, "-XX:HeapGrowthLimit="); + property_get("dalvik.vm.heapgrowthlimit", heapgrowthlimitOptsBuf+20, ""); + if (heapgrowthlimitOptsBuf[20] != '\0') { + opt.optionString = heapgrowthlimitOptsBuf; + mOptions.add(opt); + } + /* * Enable or disable dexopt features, such as bytecode verification and * calculation of register maps for precise GC.