diff options
| -rw-r--r-- | apct-tests/perftests/core/src/android/os/TracePerfTest.java | 24 | ||||
| -rw-r--r-- | core/java/android/os/CombinedMessageQueue/MessageQueue.java | 10 | ||||
| -rw-r--r-- | core/java/android/os/Looper.java | 6 |
3 files changed, 36 insertions, 4 deletions
diff --git a/apct-tests/perftests/core/src/android/os/TracePerfTest.java b/apct-tests/perftests/core/src/android/os/TracePerfTest.java index bf7c96a3cb85..0b941c9d83c0 100644 --- a/apct-tests/perftests/core/src/android/os/TracePerfTest.java +++ b/apct-tests/perftests/core/src/android/os/TracePerfTest.java @@ -139,6 +139,30 @@ public class TracePerfTest { } } + @Test + public void testInstantPerfettoWithProto() { + PerfettoTrace.begin(FOO_CATEGORY, "message_queue_receive") + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, "foo") + .endNested() + .endProto() + .addTerminatingFlow(5) + .emit(); + + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + PerfettoTrace.begin(FOO_CATEGORY, "message_queue_receive") + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, "foo") + .endNested() + .endProto() + .addTerminatingFlow(5) + .emit(); + } + } + private static TraceConfig getTraceConfig(String cat) { BufferConfig bufferConfig = BufferConfig.newBuilder().setSizeKb(1024).build(); TrackEventConfig trackEventConfig = TrackEventConfig diff --git a/core/java/android/os/CombinedMessageQueue/MessageQueue.java b/core/java/android/os/CombinedMessageQueue/MessageQueue.java index 349a2f0a181d..3fdb41f7dd83 100644 --- a/core/java/android/os/CombinedMessageQueue/MessageQueue.java +++ b/core/java/android/os/CombinedMessageQueue/MessageQueue.java @@ -238,9 +238,13 @@ public final class MessageQueue { traceMessageCount(); PerfettoTrace.instant(PerfettoTrace.MQ_CATEGORY, "message_queue_send") .addFlow(msg.mEventId.get()) - .addArg("receiving_thread", mThread.getName()) - .addArg("delay", when - SystemClock.uptimeMillis()) - .addArg("what", msg.what) + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(2 /* receiving_thread_name */, mThread.getName()) + .addField(3 /* message_code */, msg.what) + .addField(4 /* message_delay_ms */, when - SystemClock.uptimeMillis()) + .endNested() + .endProto() .emit(); } diff --git a/core/java/android/os/Looper.java b/core/java/android/os/Looper.java index d16e4473d55f..1329b90538bb 100644 --- a/core/java/android/os/Looper.java +++ b/core/java/android/os/Looper.java @@ -200,7 +200,11 @@ public final class Looper { } PerfettoTrace.begin(PerfettoTrace.MQ_CATEGORY, "message_queue_receive") - .addArg("sending_thread", msg.mSendingThreadName) + .beginProto() + .beginNested(2004 /* message_queue */) + .addField(1 /* sending_thread_name */, msg.mSendingThreadName) + .endNested() + .endProto() .addTerminatingFlow(msg.mEventId.get()) .emit(); |