- VTE (Virtual TErminal library) es la biblioteca que sirve de base para los emuladores de terminal de GNOME. Se usa en apps como GNOME Terminal, Console, Black Box, Tilix, Terminator y Ptyxis, y también en las terminales integradas de Builder y Workbench.
- Durante el ciclo de GNOME 46, el rendimiento de VTE mejoró de forma importante. Este artículo mide cuánto mejoró realmente el rendimiento y qué diferencias puede percibir un usuario en la práctica.
Qué se midió y cómo
- Hay varias formas de medir el rendimiento de un emulador de terminal, pero en este artículo se pone el foco en la latencia de entrada (Input Latency).
- La latencia de entrada es el tiempo que transcurre desde que se presiona una tecla hasta que cambia el color de un píxel en el monitor. Una app con baja latencia de entrada se siente más responsiva, mientras que una con alta latencia puede sentirse más lenta.
- Para medir la latencia de entrada se utilizó un tester de latencia por hardware. Está compuesto por un sensor de luz conectado a una placa Teensy y enlazado a la computadora por USB.
Resultados de las pruebas de latencia de entrada
- Primera prueba: se creó un campo de entrada con el comando
cat > /dev/null y se midió el tiempo que tarda el cursor de bloque en moverse una celda a la derecha al presionar la tecla Space
- Las terminales VTE mejoraron notablemente en Fedora 40 frente a Fedora 39, hasta quedar casi al nivel de Alacritty
- Segunda prueba: se abrió un archivo README en neovim y se midió mientras se hacía scroll del búfer de texto con Ctrl+D y Ctrl+U
- De nuevo, las terminales VTE de GNOME 46 mostraron una gran mejora y quedaron casi al nivel de Alacritty
- Al comparar todas las terminales de Fedora 40 al mismo tiempo, el resultado mostró que la prueba con neovim aumenta la latencia de entrada frente a la prueba con
cat, pero ese aumento se da en un nivel similar en todas las terminales
Resultados de las pruebas con vtebench
- Se ejecutó la suite de pruebas vtebench de Alacritty en el mismo entorno
- Es una prueba que mide el rendimiento de lectura y parsing de PTY, y también resulta útil para encontrar fallos en VTE
- El VTE de GNOME 46 también mostró mejoras en vtebench, aunque no al nivel de Alacritty
Conclusión
- En GNOME 46, el rendimiento de VTE mejoró de forma importante, hasta dejar la latencia de entrada casi al nivel de las terminales más rápidas
- Si habías evitado las terminales basadas en VTE por su respuesta lenta y la latencia de entrada, ahora vale la pena volver a probarlas (se recomienda VTE 0.76 o superior)
Opinión de GN⁺
- La mejora de rendimiento en las terminales basadas en VTE es muy alentadora. Parece que contribuirá bastante a mejorar la experiencia de usuario.
- Resulta interesante que se haya usado un tester de hardware para medir la latencia de entrada. También fue útil la explicación detallada del proceso de prueba y de cómo interpretar los resultados.
- También sería interesante compararlo con Terminal.app, la terminal predeterminada de macOS, o con Windows Terminal, la nueva terminal de Windows.
- Se espera que la mejora de rendimiento de VTE tenga un impacto positivo en todo el ecosistema de GNOME. Aun así, parece que todavía hay aspectos con margen de mejora, como la accesibilidad o las barras de desplazamiento.
- Es una noticia muy bienvenida para los usuarios de escritorio Linux. Ojalá varios emuladores de terminal sigan evolucionando sobre la base de estas mejoras en VTE.
1 comentarios
Comentarios de Hacker News
cat, y que estaría bien probar más terminales, especialmente la consola nativa de Linux también