diff options
| -rw-r--r-- | core/java/com/android/internal/os/ProcessCpuTracker.java | 18 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/AppProfiler.java | 3 | 
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));          }      } |