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

Commit 996b59a2 authored by Rafal Slawik's avatar Rafal Slawik Committed by Automerger Merge Worker
Browse files

Merge "Do not keep the input array with CPU times" into rvc-qpr-dev am: 5db3029c

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/13553569

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I878dc5bf4fd13736cf77de0a48c20ac60ceb1c62
parents ee1026e6 5db3029c
Loading
Loading
Loading
Loading
+8 −19
Original line number Diff line number Diff line
@@ -1565,9 +1565,6 @@ public class StatsPullAtomService extends SystemService {
        // Aggregate times for the same uids.
        SparseArray<long[]> aggregated = new SparseArray<>();
        mCpuUidFreqTimeReader.readAbsolute((uid, cpuFreqTimeMs) -> {
            // For uids known to be aggregated from many entries allow mutating in place to avoid
            // many copies. Otherwise, copy before aggregating.
            boolean mutateInPlace = false;
            if (UserHandle.isIsolated(uid)) {
                // Skip individual isolated uids because they are recycled and quickly removed from
                // the underlying data source.
@@ -1575,27 +1572,19 @@ public class StatsPullAtomService extends SystemService {
            } else if (UserHandle.isSharedAppGid(uid)) {
                // All shared app gids are accounted together.
                uid = LAST_SHARED_APPLICATION_GID;
                mutateInPlace = true;
            } else if (UserHandle.isApp(uid)) {
                // Apps are accounted under their app id.
            } else {
                // Everything else is accounted under their base uid.
                uid = UserHandle.getAppId(uid);
            }

            long[] aggCpuFreqTimeMs = aggregated.get(uid);
            if (aggCpuFreqTimeMs != null) {
                if (!mutateInPlace) {
                    aggCpuFreqTimeMs = Arrays.copyOf(aggCpuFreqTimeMs, cpuFreqTimeMs.length);
            if (aggCpuFreqTimeMs == null) {
                aggCpuFreqTimeMs = new long[cpuFreqTimeMs.length];
                aggregated.put(uid, aggCpuFreqTimeMs);
            }
            for (int freqIndex = 0; freqIndex < cpuFreqTimeMs.length; ++freqIndex) {
                aggCpuFreqTimeMs[freqIndex] += cpuFreqTimeMs[freqIndex];
            }
            } else {
                if (mutateInPlace) {
                    cpuFreqTimeMs = Arrays.copyOf(cpuFreqTimeMs, cpuFreqTimeMs.length);
                }
                aggregated.put(uid, cpuFreqTimeMs);
            }
        });

        int size = aggregated.size();