summaryrefslogtreecommitdiffstats
path: root/core/jni/AndroidRuntime.cpp
diff options
context:
space:
mode:
authorCarl Shapiro <cshapiro@google.com>2011-01-19 12:33:12 -0800
committerCarl Shapiro <cshapiro@google.com>2011-01-19 12:33:12 -0800
commit8cdf27c36a5b697396144925b3f61e4802dd3558 (patch)
treef2aaa913ed3394c851f05bbc9051e9d24ba9a1a5 /core/jni/AndroidRuntime.cpp
parent6cfc7a0acb0d3b202ae1dbee88e7e8bdfaee5590 (diff)
downloadframeworks_base-8cdf27c36a5b697396144925b3f61e4802dd3558.zip
frameworks_base-8cdf27c36a5b697396144925b3f61e4802dd3558.tar.gz
frameworks_base-8cdf27c36a5b697396144925b3f61e4802dd3558.tar.bz2
Add a property for specifying a dalvik heap growth limit.
Change-Id: I7334fb720277888df836414834ecf1e8d6b4b579
Diffstat (limited to 'core/jni/AndroidRuntime.cpp')
-rw-r--r--core/jni/AndroidRuntime.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp
index f023e94..342b884 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.