diff options
author | Ian Rogers <irogers@google.com> | 2012-09-25 11:34:34 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-09-25 11:34:35 -0700 |
commit | a8a7e7140d8d2f231707712d329a24cf32184299 (patch) | |
tree | bbbf647cf4945b1cda4dcce1994644233d9cf9b3 | |
parent | 5e21bf934b2a71b595deb9856a2044eea4dbce86 (diff) | |
parent | 5325010486a13553a8597aab92f90abc141a25e8 (diff) | |
download | frameworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.zip frameworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.tar.gz frameworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.tar.bz2 |
Merge "Extra GC heap configuration parameters." into jb-mr1-dev
-rw-r--r-- | core/jni/AndroidRuntime.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 27684d7..48fe7fa 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -453,6 +453,9 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) 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 heapminfreeOptsBuf[sizeof("-XX:HeapMinFree=")-1 + PROPERTY_VALUE_MAX]; + char heapmaxfreeOptsBuf[sizeof("-XX:HeapMaxFree=")-1 + PROPERTY_VALUE_MAX]; + char heaptargetutilizationOptsBuf[sizeof("-XX:HeapTargetUtilization=")-1 + PROPERTY_VALUE_MAX]; char extraOptsBuf[PROPERTY_VALUE_MAX]; char* stackTraceFile = NULL; bool checkJni = false; @@ -555,6 +558,27 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv) mOptions.add(opt); } + strcpy(heapminfreeOptsBuf, "-XX:HeapMinFree="); + property_get("dalvik.vm.heapminfree", heapminfreeOptsBuf+16, ""); + if (heapminfreeOptsBuf[16] != '\0') { + opt.optionString = heapminfreeOptsBuf; + mOptions.add(opt); + } + + strcpy(heapmaxfreeOptsBuf, "-XX:HeapMaxFree="); + property_get("dalvik.vm.heapmaxfree", heapmaxfreeOptsBuf+16, ""); + if (heapmaxfreeOptsBuf[16] != '\0') { + opt.optionString = heapmaxfreeOptsBuf; + mOptions.add(opt); + } + + strcpy(heaptargetutilizationOptsBuf, "-XX:HeapTargetUtilization="); + property_get("dalvik.vm.heaptargetutilization", heaptargetutilizationOptsBuf+26, ""); + if (heapmaxfreeOptsBuf[26] != '\0') { + opt.optionString = heaptargetutilizationOptsBuf; + mOptions.add(opt); + } + /* * Enable or disable dexopt features, such as bytecode verification and * calculation of register maps for precise GC. |