diff options
| author | Mathieu Chartier <mathieuc@google.com> | 2019-11-27 11:07:02 -0800 |
|---|---|---|
| committer | android-build-merger <android-build-merger@google.com> | 2019-11-27 11:07:02 -0800 |
| commit | bdf17fb2b3e46757b674ee9eaabd1c36aeffeb46 (patch) | |
| tree | e5b9cae51153c17ea934be2a0d0de46f3fc01bfc /core/java | |
| parent | 0a06c7809aac162030f5fc8120c6475b984e7040 (diff) | |
| parent | 39cbd1fb92f726b4aac53036b46c35a0c3bb76d7 (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.java | 28 |
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 { |
