Enable ShadeViewDiffer systrace logs

- Enable ShadeViewDiffer "UI Events" systrace logs on debug builds

 - Guard against unnecessary string creation in
   LogBuffer.echoToSystrace() when tracing is disabled

 - Add two new trace sections for debugging ShadeViewDiffer.applySpec()

Test: Capture trace, look for UI Events during applySpec
Bug: 224973321
Change-Id: I438947f43a9fc1bc6ff66e923645fd695cc99543
This commit is contained in:
Peter Kalauskas
2023-05-10 16:04:48 -07:00
parent f3192865a3
commit fbde6f5351
3 changed files with 16 additions and 8 deletions

View File

@@ -271,11 +271,13 @@ constructor(
}
private fun echoToSystrace(message: LogMessage, strMessage: String) {
Trace.instantForTrack(
Trace.TRACE_TAG_APP,
"UI Events",
"$name - ${message.level.shortString} ${message.tag}: $strMessage"
)
if (Trace.isTagEnabled(Trace.TRACE_TAG_APP)) {
Trace.instantForTrack(
Trace.TRACE_TAG_APP,
"UI Events",
"$name - ${message.level.shortString} ${message.tag}: $strMessage"
)
}
}
private fun echoToLogcat(message: LogMessage, strMessage: String) {

View File

@@ -60,7 +60,7 @@ public class LogModule {
if (Compile.IS_DEBUG && notifPipelineFlags.isDevLoggingEnabled()) {
maxSize *= 10;
}
return factory.create("NotifLog", maxSize, false /* systrace */);
return factory.create("NotifLog", maxSize, Compile.IS_DEBUG /* systrace */);
}
/** Provides a logging buffer for all logs related to notifications on the lockscreen. */

View File

@@ -67,7 +67,10 @@ class ShadeViewDiffer(
fun getViewLabel(view: View): String =
nodes.values.firstOrNull { node -> node.view === view }?.label ?: view.toString()
private fun detachChildren(parentNode: ShadeNode, specMap: Map<NodeController, NodeSpec>) {
private fun detachChildren(
parentNode: ShadeNode,
specMap: Map<NodeController, NodeSpec>
) = traceSection("detachChildren") {
val views = nodes.values.associateBy { it.view }
fun detachRecursively(parentNode: ShadeNode, specMap: Map<NodeController, NodeSpec>) {
val parentSpec = specMap[parentNode.controller]
@@ -124,7 +127,10 @@ class ShadeViewDiffer(
}
}
private fun attachChildren(parentNode: ShadeNode, specMap: Map<NodeController, NodeSpec>) {
private fun attachChildren(
parentNode: ShadeNode,
specMap: Map<NodeController, NodeSpec>
): Unit = traceSection("attachChildren") {
val parentSpec = checkNotNull(specMap[parentNode.controller])
for ((index, childSpec) in parentSpec.children.withIndex()) {