From 4460e3c22b07ccbf4506553819633dccc95145da Mon Sep 17 00:00:00 2001 From: Chenjie Yu Date: Wed, 14 Mar 2018 17:12:59 -0700 Subject: [PATCH] Improve efficiency for CpuTimePerUidFreq Tested on marlin. Shortly after boot, the total is 468 fileds with non zero time spent at frequency. It quickly swell to 1600+ though. It is some improvement compared to 2700+, but still an extremely large pulled atom. Bug: 74965273 Test: manual test Change-Id: Ibbeaa02f54d91c4958d75dd3aaafbb306d61f8d8 --- .../android/server/stats/StatsCompanionService.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/stats/StatsCompanionService.java b/services/core/java/com/android/server/stats/StatsCompanionService.java index 954627bfaf986..afcedcc80de22 100644 --- a/services/core/java/com/android/server/stats/StatsCompanionService.java +++ b/services/core/java/com/android/server/stats/StatsCompanionService.java @@ -720,11 +720,13 @@ public class StatsCompanionService extends IStatsCompanionService.Stub { long elapsedNanos = SystemClock.elapsedRealtimeNanos(); mKernelUidCpuFreqTimeReader.readAbsolute((uid, cpuFreqTimeMs) -> { for (int freqIndex = 0; freqIndex < cpuFreqTimeMs.length; ++freqIndex) { - StatsLogEventWrapper e = new StatsLogEventWrapper(elapsedNanos, tagId, 3); - e.writeInt(uid); - e.writeInt(freqIndex); - e.writeLong(cpuFreqTimeMs[freqIndex]); - pulledData.add(e); + if(cpuFreqTimeMs[freqIndex] != 0) { + StatsLogEventWrapper e = new StatsLogEventWrapper(elapsedNanos, tagId, 3); + e.writeInt(uid); + e.writeInt(freqIndex); + e.writeLong(cpuFreqTimeMs[freqIndex]); + pulledData.add(e); + } } }); }