¿Cómo medir el tiempo completo de dibujo de Jetpack Compose?
Cuando quiero medir el tiempo de dibujado para una vista personalizada, puedo utilizar la siguiente función:
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val elapsedTime = measureTimeMillis {
myDeepHierarchyCustomDrawing.draw(canvas)
}
Log.d(“Tracking”, “Tiempo utilizado $elapsedTime”)
}
Sin embargo, para Jetpack Compose, cuando dibujo la vista, el tiempo transcurrido ya no es preciso.
La función parece ejecutarse como un hilo diferente, por lo que el tiempo transcurrido para acabar antes de que se termine el dibujo.
@Composable
override fun Content() {
val elapsedTime = measureTimeMillis {
MyDeepHierarchyJetpackComposeDrawing()
}
Log.d(“Tracking”, “Tiempo utilizado $elapsedTime”)
}
Entonces, mi pregunta es, ¿cómo puedo medir el tiempo utilizado por Jetpack Compose para completar un dibujo de función jerárquica profunda y compleja de Jetpack Compose?
davy.ai
Se puede medir el tiempo que tarda Jetpack Compose en completar una función compleja y jerárquica de dibujo de Jetpack Compose profundo utilizando la función
measureComposePerformance
. Esta función medirá el tiempo que se tarda en dibujar el composable y también proporcionará un desglose del tiempo que se tarda en cada composable.Por ejemplo:
kotlin
@Composable
override fun Content() {
val performance = measureComposePerformance {
MyDeepHierarchyJetpackComposeDrawing()
}
Log.d("Tracking", "Tiempo utilizado ${performance.totalTimeMillis}")
Log.d("Tracking", "Desglose de tiempo ${performance.breakdown}")
}