summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Mohamad Mahmoud <mohamadmahmoud@google.com> 2022-12-19 16:08:56 +0000
committer Mohamad Mahmoud <mohamadmahmoud@google.com> 2022-12-22 09:41:33 +0000
commitb51fd80f2bac4a4a3569c6d930befd6bef78b8be (patch)
tree89130f9285fd01dd0d75b1c1e28b565ec6561d0d
parent90e81227d9857041b6fdbc8d6ed411504bcf3602 (diff)
Limit the number of dumped processes in the CPU usage section in dropbox files to 10
Test: tested on a local device Bug: 261435148 Change-Id: I28cc04fec464dd6515311508459b1e1305aefed8
-rw-r--r--core/java/com/android/internal/os/ProcessCpuTracker.java18
-rw-r--r--services/core/java/com/android/server/am/AppProfiler.java3
2 files changed, 17 insertions, 4 deletions
diff --git a/core/java/com/android/internal/os/ProcessCpuTracker.java b/core/java/com/android/internal/os/ProcessCpuTracker.java
index 0df006d3a9bf..65655b7b5a66 100644
--- a/core/java/com/android/internal/os/ProcessCpuTracker.java
+++ b/core/java/com/android/internal/os/ProcessCpuTracker.java
@@ -841,7 +841,19 @@ public class ProcessCpuTracker {
return sw.toString();
}
- final public String printCurrentState(long now) {
+ /**
+ * Returns current CPU state with all the processes as a String, sorted by load
+ * in descending order.
+ */
+ public final String printCurrentState(long now) {
+ return printCurrentState(now, Integer.MAX_VALUE);
+ }
+
+ /**
+ * Returns current CPU state with the top {@code maxProcessesToDump} highest load
+ * processes as a String, sorted by load in descending order.
+ */
+ public final String printCurrentState(long now, int maxProcessesToDump) {
final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
buildWorkingProcs();
@@ -883,8 +895,8 @@ public class ProcessCpuTracker {
if (DEBUG) Slog.i(TAG, "totalTime " + totalTime + " over sample time "
+ (mCurrentSampleTime-mLastSampleTime));
- int N = mWorkingProcs.size();
- for (int i=0; i<N; i++) {
+ int dumpedProcessCount = Math.min(maxProcessesToDump, mWorkingProcs.size());
+ for (int i = 0; i < dumpedProcessCount; i++) {
Stats st = mWorkingProcs.get(i);
printProcessCPU(pw, st.added ? " +" : (st.removed ? " -": " "),
st.pid, st.name, (int)st.rel_uptime,
diff --git a/services/core/java/com/android/server/am/AppProfiler.java b/services/core/java/com/android/server/am/AppProfiler.java
index b7de57f8fc71..b4e2a0368857 100644
--- a/services/core/java/com/android/server/am/AppProfiler.java
+++ b/services/core/java/com/android/server/am/AppProfiler.java
@@ -2310,7 +2310,8 @@ public class AppProfiler {
void printCurrentCpuState(StringBuilder report, long time) {
synchronized (mProcessCpuTracker) {
- report.append(mProcessCpuTracker.printCurrentState(time));
+ // Only print the first 10 processes
+ report.append(mProcessCpuTracker.printCurrentState(time, /* maxProcesses= */10));
}
}