Merge "Use APEX boot image for profilebootclasspath"
This commit is contained in:
@@ -696,26 +696,32 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote, bool p
|
|||||||
// Read if we are using the profile configuration, do this at the start since the last ART args
|
// Read if we are using the profile configuration, do this at the start since the last ART args
|
||||||
// take precedence.
|
// take precedence.
|
||||||
property_get("dalvik.vm.profilebootclasspath", propBuf, "");
|
property_get("dalvik.vm.profilebootclasspath", propBuf, "");
|
||||||
std::string profile_boot_class_path = propBuf;
|
std::string profile_boot_class_path_flag = propBuf;
|
||||||
// Empty means the property is unset and we should default to the phenotype property.
|
// Empty means the property is unset and we should default to the phenotype property.
|
||||||
// The possible values are {"true", "false", ""}
|
// The possible values are {"true", "false", ""}
|
||||||
if (profile_boot_class_path.empty()) {
|
if (profile_boot_class_path_flag.empty()) {
|
||||||
profile_boot_class_path = server_configurable_flags::GetServerConfigurableFlag(
|
profile_boot_class_path_flag = server_configurable_flags::GetServerConfigurableFlag(
|
||||||
RUNTIME_NATIVE_BOOT_NAMESPACE,
|
RUNTIME_NATIVE_BOOT_NAMESPACE,
|
||||||
PROFILE_BOOT_CLASS_PATH,
|
PROFILE_BOOT_CLASS_PATH,
|
||||||
/*default_value=*/ "");
|
/*default_value=*/ "");
|
||||||
}
|
}
|
||||||
if (profile_boot_class_path == "true") {
|
const bool profile_boot_class_path = (profile_boot_class_path_flag == "true");
|
||||||
|
if (profile_boot_class_path) {
|
||||||
|
addOption("-Xcompiler-option");
|
||||||
|
addOption("--count-hotness-in-compiled-code");
|
||||||
addOption("-Xps-profile-boot-class-path");
|
addOption("-Xps-profile-boot-class-path");
|
||||||
addOption("-Xps-profile-aot-code");
|
addOption("-Xps-profile-aot-code");
|
||||||
addOption("-Xjitsaveprofilinginfo");
|
addOption("-Xjitsaveprofilinginfo");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string use_apex_image =
|
std::string use_apex_image_flag =
|
||||||
server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE,
|
server_configurable_flags::GetServerConfigurableFlag(RUNTIME_NATIVE_BOOT_NAMESPACE,
|
||||||
ENABLE_APEX_IMAGE,
|
ENABLE_APEX_IMAGE,
|
||||||
/*default_value=*/ "");
|
/*default_value=*/ "");
|
||||||
if (use_apex_image == "true") {
|
// Use the APEX boot image for boot class path profiling to get JIT samples on BCP methods.
|
||||||
|
// Also use the APEX boot image if it's explicitly enabled via configuration flag.
|
||||||
|
const bool use_apex_image = profile_boot_class_path || (use_apex_image_flag == "true");
|
||||||
|
if (use_apex_image) {
|
||||||
addOption(kApexImageOption);
|
addOption(kApexImageOption);
|
||||||
ALOGI("Using Apex boot image: '%s'\n", kApexImageOption);
|
ALOGI("Using Apex boot image: '%s'\n", kApexImageOption);
|
||||||
} else if (parseRuntimeOption("dalvik.vm.boot-image", bootImageBuf, "-Ximage:")) {
|
} else if (parseRuntimeOption("dalvik.vm.boot-image", bootImageBuf, "-Ximage:")) {
|
||||||
|
|||||||
Reference in New Issue
Block a user