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

Commit d3c72db3 authored by Mathieu Chartier's avatar Mathieu Chartier
Browse files

Avoid preloading classes for boot image profiling

Since the clinits may execute methods, we should avoid preloading
classes to avoid executing methods that may not be required. These
samples could cause inaccuracy in the boot image profile.

Test: manual: adb logcat | grep preloadClasses
Bug: 139883463

Change-Id: I5b4568a477724606105196cba010109f80eecec1
parent 0ac7e561
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -248,6 +248,18 @@ 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 + ".");