es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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?

Tags:  

Answer

  1. Avatar for 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}")
    }

Comments are closed.