Rendimiento y memoria del Canvas
Qué hace el Canvas para que un tablero grande siga siendo usable — y qué puedes observar cuando una tarjeta sale de la pantalla.
Un tablero con muchas tarjetas cuesta caro: cada terminal es un proceso y un búfer, cada editor es un árbol de elementos en pantalla. Esta página explica qué hace la app para que el tablero siga siendo usable — y qué significa eso para ti.
Nada de esto es una configuración. No existe un ajuste de rendimiento del Canvas para activar, desactivar o calibrar. Es política interna de la app.
La idea: energía por tarjeta
Cada tarjeta tiene un nivel de energía, calculado a partir de dónde está respecto al área visible, del estado de ventana (normal o minimizada) y de límites internos:
| Nivel | Qué significa |
|---|---|
| Activa | En el área visible y dibujando por completo. |
| Caliente | Montada y lista, con la pintura suspendida mientras está fuera de vista. |
| Suspendida | La tarjeta fue minimizada: el cuerpo sale de la pantalla, pero el contenido sigue vivo. |
| Estacionada | La tarjeta sigue fuera del área visible después del tiempo de histéresis: mismo efecto que la suspendida, por otro motivo. |
| Desalojada | El contenido se destruyó en pantalla; la sesión sigue viva en el proceso principal. |
El punto central: la sesión nunca muere por causa de la energía. Un terminal fuera de pantalla sigue recibiendo lo que el proceso escribe; una conversación sigue siendo la misma. Lo que cambia es cuánto trabajo de pantalla da la tarjeta.
Qué tarjetas pueden suspenderse
Solo tarjetas de terminal. Notas, archivos, conversaciones y navegadores nunca se suspenden ni se desalojan: su cuerpo queda siempre montado. El texto de una nota no desaparece por causa del rendimiento.
Los límites internos
- Hay un techo de 50 cuerpos suspendidos o estacionados al mismo tiempo. Pasando de ahí, los más antiguos pasan a ser desalojados.
- Hay un techo de 20 contextos gráficos de terminal al mismo tiempo.
- La histéresis — el tiempo que una tarjeta tiene que estar fuera de vista antes de suspenderse — es del orden de un minuto.
- La vuelta de una tarjeta suspendida está limitada por cuadro, y bajo presión crítica de memoria se pospone: las tarjetas se quedan donde están en vez de volver todas de una vez.
Estos números son política interna y pueden cambiar entre versiones. No son un contrato, y hoy no existe una forma de configurarlos por la interfaz.
Qué observas
- Una tarjeta fuera de pantalla vuelve con su contenido. El búfer del terminal se preserva mientras la tarjeta está suspendida o estacionada; al volver, la pantalla se redibuja a partir de él.
- No hay aviso en pantalla sobre suspender o desalojar. No existe indicador de “esta tarjeta fue suspendida” ni notificación sobre eso. Como solo pasa con tarjetas fuera de vista, normalmente no lo notas.
- Minimizar no es cerrar. Una tarjeta minimizada tiene el contenido mantenido, oculto, y sigue corriendo.
Cuidado con un defecto conocido. Un terminal puede volver negro después de salir del área visible o de ser minimizado. Si encuentras un terminal negro al volver a una tarjeta, usa Recargar en el menú de la tarjeta: reconecta una pantalla nueva al mismo proceso, y el trabajo continúa donde estaba. No cierres la tarjeta en ese estado — cerrar termina la sesión.
Lo que ya se midió
Estas mediciones son del proyecto y sirven para dar orden de magnitud — no son promesa de rendimiento en tu máquina:
- Antes: un tablero con muchas tarjetas llegó a tener cuadros de hasta 495 ms en producción durante el arrastre del tablero.
- Después del escalonamiento (las tarjetas vuelven en oleadas, no todas en el mismo cuadro): el peor cuadro bajó a 139 ms, y el costo fijo de unos 100 ms por actualización de posición sigue abierto.
- Abrir un menú con 25 tarjetas bajó de 183 ms a 58 ms.
- Crear una nota y poder escribir en ella tardó 262 ms.
La regla del proyecto es contar cuadros lentos, no el promedio. La meta es 60 cuadros por segundo (33 ms por cuadro), y lo que se mide es cuántos cuadros pasan de 33 ms y de 100 ms. El promedio esconde exactamente lo que la persona siente.
Sobre la instrumentación
El Canvas tiene una instrumentación de rendimiento interna, accesible solo por la ventana de desarrollo de la aplicación — no hay interfaz de producto para ella. Mide renderizaciones, el tiempo hasta que el editor de nota acepta la primera tecla y latencias de estacionamiento, y se puede activar sin recompilar.
Si no eres quien está tocando el código de la app, eso no cambia nada en tu experiencia: es herramienta de diagnóstico.
Límites que conviene saber
- Un tablero grande sigue siendo un tablero grande. Los límites reducen el costo, no eliminan el hecho de que cada terminal es un proceso.
- El estado del tablero crece con el uso. Cada workspace guarda su disposición, y eso no se borra solo.
- Sin LOD por zoom. No existe hoy un comportamiento de “simplificar la tarjeta cuando el zoom está alejado”; las tarjetas se dibujan como son.