OSDN Git Service

Add the wall clock time to dumpsys cpuinfo so it's easier to correlate with the logs.
authorJoe Onorato <joeo@google.com>
Fri, 15 Apr 2016 20:34:25 +0000 (13:34 -0700)
committerJoe Onorato <joeo@google.com>
Tue, 19 Apr 2016 18:27:11 +0000 (11:27 -0700)
Bug: 28113068
Change-Id: Ifa90192b0aa3f57ba6928f38199beb5b56bca7e6

core/java/com/android/internal/os/ProcessCpuTracker.java

index d831902..b7e5718 100644 (file)
@@ -34,9 +34,11 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
+import java.util.Date;
 import java.util.StringTokenizer;
 
 public class ProcessCpuTracker {
@@ -147,6 +149,9 @@ public class ProcessCpuTracker {
     private long mCurrentSampleRealTime;
     private long mLastSampleRealTime;
 
+    private long mCurrentSampleWallTime;
+    private long mLastSampleWallTime;
+
     private long mBaseUserTime;
     private long mBaseSystemTime;
     private long mBaseIoWaitTime;
@@ -305,6 +310,7 @@ public class ProcessCpuTracker {
 
         final long nowUptime = SystemClock.uptimeMillis();
         final long nowRealtime = SystemClock.elapsedRealtime();
+        final long nowWallTime = System.currentTimeMillis();
 
         final long[] sysCpu = mSystemCpuData;
         if (Process.readProcFile("/proc/stat", SYSTEM_CPU_FORMAT,
@@ -367,6 +373,8 @@ public class ProcessCpuTracker {
         mCurrentSampleTime = nowUptime;
         mLastSampleRealTime = mCurrentSampleRealTime;
         mCurrentSampleRealTime = nowRealtime;
+        mLastSampleWallTime = mCurrentSampleWallTime;
+        mCurrentSampleWallTime = nowWallTime;
 
         final StrictMode.ThreadPolicy savedPolicy = StrictMode.allowThreadDiskReads();
         try {
@@ -710,6 +718,8 @@ public class ProcessCpuTracker {
     }
 
     final public String printCurrentState(long now) {
+        final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
+
         buildWorkingProcs();
 
         StringWriter sw = new StringWriter();
@@ -727,6 +737,11 @@ public class ProcessCpuTracker {
             pw.print(mCurrentSampleTime-now);
             pw.print("ms later");
         }
+        pw.print(" (");
+        pw.print(sdf.format(new Date(mLastSampleWallTime)));
+        pw.print(" to ");
+        pw.print(sdf.format(new Date(mCurrentSampleWallTime)));
+        pw.print(")");
 
         long sampleTime = mCurrentSampleTime - mLastSampleTime;
         long sampleRealTime = mCurrentSampleRealTime - mLastSampleRealTime;