summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2019-11-27 11:07:02 -0800
committerandroid-build-merger <android-build-merger@google.com>2019-11-27 11:07:02 -0800
commitbdf17fb2b3e46757b674ee9eaabd1c36aeffeb46 (patch)
treee5b9cae51153c17ea934be2a0d0de46f3fc01bfc /core/java
parent0a06c7809aac162030f5fc8120c6475b984e7040 (diff)
parent39cbd1fb92f726b4aac53036b46c35a0c3bb76d7 (diff)
Merge "Use resetJitCounters for boot image profiling" am: ce9a776f1d
am: 39cbd1fb92 Change-Id: If463c8e74cc45d8fdb36df68c2ad713370fa1e28
Diffstat (limited to 'core/java')
-rw-r--r--core/java/com/android/internal/os/ZygoteInit.java28
1 files changed, 16 insertions, 12 deletions
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index ad4c6dd7a92b..93e61020ff19 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -248,18 +248,6 @@ public class ZygoteInit {
InputStream is;
try {
- // If we are profiling the boot image, avoid preloading classes.
- // Can't use device_config since we are the zygote.
- String prop = SystemProperties.get(
- "persist.device_config.runtime_native_boot.profilebootclasspath", "");
- // Might be empty if the property is unset since the default is "".
- if (prop.length() == 0) {
- prop = SystemProperties.get("dalvik.vm.profilebootclasspath", "");
- }
- if ("true".equals(prop)) {
- return;
- }
-
is = new FileInputStream(PRELOADED_CLASSES);
} catch (FileNotFoundException e) {
Log.e(TAG, "Couldn't find " + PRELOADED_CLASSES + ".");
@@ -339,6 +327,22 @@ public class ZygoteInit {
runtime.preloadDexCaches();
Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+ // If we are profiling the boot image, reset the Jit counters after preloading the
+ // classes. We want to preload for performance, and we can use method counters to
+ // infer what clases are used after calling resetJitCounters, for profile purposes.
+ // Can't use device_config since we are the zygote.
+ String prop = SystemProperties.get(
+ "persist.device_config.runtime_native_boot.profilebootclasspath", "");
+ // Might be empty if the property is unset since the default is "".
+ if (prop.length() == 0) {
+ prop = SystemProperties.get("dalvik.vm.profilebootclasspath", "");
+ }
+ if ("true".equals(prop)) {
+ Trace.traceBegin(Trace.TRACE_TAG_DALVIK, "ResetJitCounters");
+ runtime.resetJitCounters();
+ Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
+ }
+
// Bring back root. We'll need it later if we're in the zygote.
if (droppedPriviliges) {
try {