Ir al contenido

Guía de Flutter para novatos - Miguel Páramos

FAQ sobre Flutter pal que no tiene ni idea de Flutter | 2º DAM · PMDM

Rendimiento y fotogramas: ¿Se ejecuta build() 60 veces por segundo si no pongo const ?

Existe a veces la confusión de pensar que omitir la palabra clave const en un widget provocará que el método build() se ejecute continuamente 60 veces por segundo en bucle infinito. Conviene desmitificar este aspecto y entender cuándo se ejecuta build() y qué papel juega realmente la optimización de const.

¿Se ejecuta build() 60 veces por segundo si no ponemos const?

Sección titulada «¿Se ejecuta build() 60 veces por segundo si no ponemos const?»

No, una pantalla estática no se reconstruye continuamente a 60 FPS.

  • Si la pantalla está estática y sin interactividad o animaciones activas, el método build() se ejecuta únicamente una vez.
  • ¿Cuándo se ejecuta 60 o 120 veces por segundo?
    • Cuando hay una animación en marcha.
    • Mientras el usuario hace scroll.
    • Al arrastrar o interactuar con un elemento táctil.
    • Si un temporizador, sensor o flujo llama a setState() de forma continua.

¿Qué hace const exactamente durante el repintado?

Sección titulada «¿Qué hace const exactamente durante el repintado?»
  • Sin const: Durante una animación o desplazamiento, cada vez que se redibuja la pantalla, Flutter tiene que instanciar de nuevo en memoria todos los objetos del árbol, comparar sus propiedades y desechar las instancias anteriores en el recolector de basura.
  • Con const: Dart asigna una única dirección de memoria fija en tiempo de compilación. Cuando Flutter reconstruye la pantalla, realiza una comprobación inmediata de puntero (identical(viejo, nuevo)). Al detectar que es la misma instancia exacta en memoria, omite por completo volver a calcular y procesar ese subárbol.