summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Siarhei Vishniakou <svv@google.com> 2025-02-07 10:36:36 -0800
committer Siarhei Vishniakou <svv@google.com> 2025-02-07 15:25:25 -0800
commitab77bd971df98bd46332a0e9b69899ecbc643003 (patch)
treee22921057b6531e74bb20dc2b9aff0ba64cd3aeb
parent1d883bc1806844474fc79d53c5d3836f1d04ab12 (diff)
Don't call 'getShortDescription' when tracing is not enabled
The call to 'getShortDescription' is expensive. Currently, it's called even if tracing is not enabled, which slows down input processing. Move this into an 'if' statement, which will ensure that it's only called if tracing is enabled. If we find that this is still too expensive (slows down input processing too much when tracing is enabled), we should consider getting rid of this trace completely. Bug: 395115521 Flag: EXEMPT bugfix Test: none Change-Id: Icbf2ea32e6ebc4c944d214c953b11a5d7a7cdede
-rw-r--r--core/java/android/view/InputEventReceiver.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/core/java/android/view/InputEventReceiver.java b/core/java/android/view/InputEventReceiver.java
index 1c36eaf99afa..9c1f134bff3e 100644
--- a/core/java/android/view/InputEventReceiver.java
+++ b/core/java/android/view/InputEventReceiver.java
@@ -290,9 +290,15 @@ public abstract class InputEventReceiver {
@SuppressWarnings("unused")
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553)
private void dispatchInputEvent(int seq, InputEvent event) {
- Trace.traceBegin(Trace.TRACE_TAG_INPUT, "dispatchInputEvent " + getShortDescription(event));
+ if (Trace.isTagEnabled(Trace.TRACE_TAG_INPUT)) {
+ // This 'if' block is an optimization - without it, 'getShortDescription' will be
+ // called unconditionally, which is expensive.
+ Trace.traceBegin(Trace.TRACE_TAG_INPUT,
+ "dispatchInputEvent " + getShortDescription(event));
+ }
mSeqMap.put(event.getSequenceNumber(), seq);
onInputEvent(event);
+ // If tracing is not enabled, `traceEnd` is a no-op (so we don't need to guard it with 'if')
Trace.traceEnd(Trace.TRACE_TAG_INPUT);
}