Add dalvik.vm.gctype to enable switching between different GCs.
The option passes the specified GC type into the Xgc runtime option. Currently the three different supported GC types are MS, CMS, SS which represent mark-sweep, concurrent mark-sweep, mark-sweep + semi-space hybrid. Change-Id: I6ad95c8d12c0d1158f7c861ff0c3180761619172
This commit is contained in:
@@ -448,6 +448,7 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
|
||||
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 gctypeOptsBuf[sizeof("-Xgc:")-1 + PROPERTY_VALUE_MAX];
|
||||
char heaptargetutilizationOptsBuf[sizeof("-XX:HeapTargetUtilization=")-1 + PROPERTY_VALUE_MAX];
|
||||
char jitcodecachesizeOptsBuf[sizeof("-Xjitcodecachesize:")-1 + PROPERTY_VALUE_MAX];
|
||||
char extraOptsBuf[PROPERTY_VALUE_MAX];
|
||||
@@ -583,6 +584,13 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv)
|
||||
mOptions.add(opt);
|
||||
}
|
||||
|
||||
strcpy(gctypeOptsBuf, "-Xgc:");
|
||||
property_get("dalvik.vm.gctype", gctypeOptsBuf+5, "");
|
||||
if (gctypeOptsBuf[5] != '\0') {
|
||||
opt.optionString = gctypeOptsBuf;
|
||||
mOptions.add(opt);
|
||||
}
|
||||
|
||||
/*
|
||||
* Enable or disable dexopt features, such as bytecode verification and
|
||||
* calculation of register maps for precise GC.
|
||||
|
||||
Reference in New Issue
Block a user