| Index: content/public/android/java/src/org/chromium/content/common/TraceEvent.java
|
| diff --git a/content/public/android/java/src/org/chromium/content/common/TraceEvent.java b/content/public/android/java/src/org/chromium/content/common/TraceEvent.java
|
| index de75f215f25d69fb130e46c20802e303af1016fe..85954e3f433f467ef244f9c2203345a87c205f7a 100644
|
| --- a/content/public/android/java/src/org/chromium/content/common/TraceEvent.java
|
| +++ b/content/public/android/java/src/org/chromium/content/common/TraceEvent.java
|
| @@ -75,11 +75,9 @@ public class TraceEvent {
|
| @Override
|
| public void println(final String line) {
|
| if (line.startsWith(">")) {
|
| - TraceEvent.begin(DISPATCH_EVENT_NAME, line);
|
| begin(line);
|
| } else {
|
| assert line.startsWith("<");
|
| - TraceEvent.end(DISPATCH_EVENT_NAME);
|
| end(line);
|
| }
|
| }
|
| @@ -104,9 +102,11 @@ public class TraceEvent {
|
| }
|
|
|
| private final void begin(final String line) {
|
| + // Close-out any prior 'idle' period before starting new task.
|
| if (mNumTasksSinceLastIdle == 0) {
|
| TraceEvent.end(IDLE_EVENT_NAME);
|
| }
|
| + TraceEvent.begin(DISPATCH_EVENT_NAME, line);
|
| mLastWorkStartedAt = SystemClock.elapsedRealtime();
|
| syncIdleMonitoring();
|
| }
|
| @@ -115,31 +115,34 @@ public class TraceEvent {
|
| final long elapsed = SystemClock.elapsedRealtime()
|
| - mLastWorkStartedAt;
|
| if (elapsed > MIN_INTERESTING_DURATION_MILLIS) {
|
| - Log.w(TAG, "observed a task that took "
|
| + traceAndLog(Log.WARN, "observed a task that took "
|
| + elapsed + "ms: " + line);
|
| }
|
| + TraceEvent.end(DISPATCH_EVENT_NAME);
|
| syncIdleMonitoring();
|
| mNumTasksSeen++;
|
| mNumTasksSinceLastIdle++;
|
| }
|
|
|
| + private static void traceAndLog(int level, String message) {
|
| + TraceEvent.instant("TraceEvent.LooperMonitor:IdleStats", message);
|
| + Log.println(level, TAG, message);
|
| + }
|
| +
|
| @Override
|
| public final boolean queueIdle() {
|
| final long now = SystemClock.elapsedRealtime();
|
| if (mLastIdleStartedAt == 0) mLastIdleStartedAt = now;
|
| final long elapsed = now - mLastIdleStartedAt;
|
| mNumIdlesSeen++;
|
| + TraceEvent.begin(IDLE_EVENT_NAME, mNumTasksSinceLastIdle + " tasks since last idle.");
|
| if (elapsed > MIN_INTERESTING_BURST_DURATION_MILLIS) {
|
| // Dump stats
|
| String statsString = mNumTasksSeen + " tasks and "
|
| + mNumIdlesSeen + " idles processed so far, "
|
| + mNumTasksSinceLastIdle + " tasks bursted and "
|
| + elapsed + "ms elapsed since last idle";
|
| - Log.d(TAG, statsString);
|
| - instant("TraceEvent.LooperMonitor:IdleStats", statsString);
|
| - TraceEvent.begin(IDLE_EVENT_NAME, statsString);
|
| - } else {
|
| - TraceEvent.begin(IDLE_EVENT_NAME);
|
| + traceAndLog(Log.DEBUG, statsString);
|
| }
|
| mLastIdleStartedAt = now;
|
| mNumTasksSinceLastIdle = 0;
|
|
|