summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apct-tests/perftests/core/src/android/os/TracePerfTest.java24
-rw-r--r--core/java/android/os/CombinedMessageQueue/MessageQueue.java10
-rw-r--r--core/java/android/os/Looper.java6
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();