Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6eed08ba authored by Mathieu Chartier's avatar Mathieu Chartier Committed by android-build-merger
Browse files

Merge "Use resetJitCounters for boot image profiling" am: ce9a776f am: 39cbd1fb

am: bdf17fb2

Change-Id: I7e7b4f59d26c25671d71cb4d53403a7726af2e19
parents 90d076ea bdf17fb2
Loading
Loading
Loading
Loading
+16 −12
Original line number Original line Diff line number Diff line
@@ -254,18 +254,6 @@ public class ZygoteInit {


        InputStream is;
        InputStream is;
        try {
        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);
            is = new FileInputStream(PRELOADED_CLASSES);
        } catch (FileNotFoundException e) {
        } catch (FileNotFoundException e) {
            Log.e(TAG, "Couldn't find " + PRELOADED_CLASSES + ".");
            Log.e(TAG, "Couldn't find " + PRELOADED_CLASSES + ".");
@@ -345,6 +333,22 @@ public class ZygoteInit {
            runtime.preloadDexCaches();
            runtime.preloadDexCaches();
            Trace.traceEnd(Trace.TRACE_TAG_DALVIK);
            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.
            // Bring back root. We'll need it later if we're in the zygote.
            if (droppedPriviliges) {
            if (droppedPriviliges) {
                try {
                try {