From 42cd265639f626fd4cd085b2c452b59bd7b174fe Mon Sep 17 00:00:00 2001 From: Mathieu Chartier Date: Wed, 7 Jun 2017 17:34:22 -0700 Subject: [PATCH] Add system property for hot startup method threshold The property is dalvik.vm.hot-startup-method-samples, setting this controls how many startup samples are required before methods are marked as hot in the profile. Test: adb shell setprop dalvik.vm.hot-startup-method-samples 12 Test: adb shell setprop dalvik.vm.extra-opts -verbose:profiler Test: adb logcat | grep Profile Bug: 36457259 (cherry picked from commit 5eee004b926dc0fc02640de09c9d9a7f8fe1f052) Change-Id: Ibf8075aafc6e5bd2ba10385973b26faee3d807df --- core/jni/AndroidRuntime.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/core/jni/AndroidRuntime.cpp b/core/jni/AndroidRuntime.cpp index 07f1b45fe01af..81504c047adaf 100644 --- a/core/jni/AndroidRuntime.cpp +++ b/core/jni/AndroidRuntime.cpp @@ -620,6 +620,7 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) char useJitProfilesOptsBuf[sizeof("-Xjitsaveprofilinginfo:")-1 + PROPERTY_VALUE_MAX]; char jitprithreadweightOptBuf[sizeof("-Xjitprithreadweight:")-1 + PROPERTY_VALUE_MAX]; char jittransitionweightOptBuf[sizeof("-Xjittransitionweight:")-1 + PROPERTY_VALUE_MAX]; + char hotstartupsamplesOptsBuf[sizeof("-Xps-hot-startup-method-samples:")-1 + PROPERTY_VALUE_MAX]; char gctypeOptsBuf[sizeof("-Xgc:")-1 + PROPERTY_VALUE_MAX]; char backgroundgcOptsBuf[sizeof("-XX:BackgroundGC=")-1 + PROPERTY_VALUE_MAX]; char heaptargetutilizationOptsBuf[sizeof("-XX:HeapTargetUtilization=")-1 + PROPERTY_VALUE_MAX]; @@ -746,6 +747,12 @@ int AndroidRuntime::startVm(JavaVM** pJavaVM, JNIEnv** pEnv, bool zygote) jittransitionweightOptBuf, "-Xjittransitionweight:"); + /* + * Profile related options. + */ + parseRuntimeOption("dalvik.vm.hot-startup-method-samples", hotstartupsamplesOptsBuf, + "-Xps-hot-startup-method-samples:"); + property_get("ro.config.low_ram", propBuf, ""); if (strcmp(propBuf, "true") == 0) { addOption("-XX:LowMemoryMode");