3 puntos por GN⁺ 2024-04-09 | 1 comentarios | Compartir por WhatsApp
  • 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

 
GN⁺ 2024-04-09

Comentarios de Hacker News

  • Que la latencia de entrada del terminal más reciente de GNOME ya sea menor que la de la computadora Apple //e de 1983 es un logro, pero el entorno de prueba difiere del uso real
    • La prueba se realizó en raw Mutter, un entorno mínimo, no en GNOME Shell
    • No incluye la latencia del teclado, así que no es una medición de latencia de extremo a extremo (la latencia del teclado puede llegar hasta 60 ms)
    • Se espera que la latencia real de extremo a extremo con la configuración predeterminada sea mayor
  • Se midió en el centro del monitor, pero entre la parte superior e inferior puede haber una diferencia de 8 ms (porque los píxeles se dibujan de arriba hacia abajo, como en un CRT)
  • Es difícil hacer comparaciones simples entre monitores. Puede haber efectos no comparables causados por controladores o perfiles
  • Resulta irónico que en una época en la que es posible hacer renderizado 3D realista, todavía se esté resolviendo el problema de mostrar texto en una terminal
  • Son impresionantes los esfuerzos del desarrollador de VTE por mejorar el rendimiento y por medir la latencia con hardware
  • Preguntan si existe algún terminal de Linux que, como Terminal de macOS, recuerde el historial y el scrollback por pestaña
  • Alguien comenta que usó Gnome durante mucho tiempo, pero que después de cambiarse a sway+alacritty no notó diferencia
  • Mencionan el problema del tamaño inicial pequeño de la ventana de Gnome Terminal y que no guarda el tamaño
  • Al usar xterm+i3wm, alguien dice que no ha experimentado nada más rápido y que alacritty, que usa GPU, le parece excesivo
  • Opinan que sería bueno incluir también el terminal Ghostty de Mitchelle Hashimoto en el benchmark
  • Dicen que este benchmark fue bueno porque no fue una simple prueba con cat, y que estaría bien probar más terminales, especialmente la consola nativa de Linux también