summaryrefslogtreecommitdiffstats
path: root/core/jni
diff options
context:
space:
mode:
authorIan Rogers <irogers@google.com>2012-09-25 11:34:34 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2012-09-25 11:34:35 -0700
commita8a7e7140d8d2f231707712d329a24cf32184299 (patch)
treebbbf647cf4945b1cda4dcce1994644233d9cf9b3 /core/jni
parent5e21bf934b2a71b595deb9856a2044eea4dbce86 (diff)
parent5325010486a13553a8597aab92f90abc141a25e8 (diff)
downloadframeworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.zip
frameworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.tar.gz
frameworks_base-a8a7e7140d8d2f231707712d329a24cf32184299.tar.bz2
Merge "Extra GC heap configuration parameters." into jb-mr1-dev
Diffstat (limited to 'core/jni')
-rw-r--r--core/jni/AndroidRuntime.cpp24
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.