Benchmark: Emuladores de terminal en MacOS y GNU/Linux
  • Viernes 19 de Abril de 2024

Benchmark: Emuladores de terminal en MacOS y GNU/Linux

Medir el rendimiento del emulador de terminal es fundamental para los usuarios que buscan una experiencia fluida y eficiente. En este sentido, se centra en tres aspectos principales: el consumo de energía en tareas habituales, la latencia del teclado a la pantalla y el rendimiento al procesar grandes cantidades de datos.

Kitty tiene un “kitten” integrado para medir el rendimiento de transferencia. Funciona mediante la carga de grandes cantidades de datos de diferentes tipos en el dispositivo tty y midiendo qué tan rápido el terminal analiza y responde a ellos. Las mediciones a continuación se realizaron con la misma fuente, tamaño de fuente y tamaño de ventana para todos los terminales, y con la configuración predeterminada, en la misma computadora.

Replicar el proceso

Para replicar el proceso de medición de rendimiento, primero necesitas instalar kitty en tu sistema. Luego, ejecuta el siguiente comando en tu terminal:

1
kitten __benchmark__ --render

Entendiéndo los resultados

Los resultados de las pruebas se dividen en cinco categorías: solo caracteres ASCII, caracteres Unicode, códigos CSI con pocos caracteres, códigos de escape largos e imágenes. Cada categoría representa un tipo diferente de datos que se procesan en el terminal.

Solo caracteres ASCII

Los caracteres ASCII son aquellos que pertenecen al conjunto de caracteres ASCII estándar, que incluye letras, números, signos de puntuación y algunos caracteres especiales. Estos caracteres se representan mediante un código numérico de 7 bits. Se utilizan comúnmente en la entrada y salida de datos en la mayoría de los entornos de terminal y son compatibles con una amplia gama de dispositivos y sistemas.

Caracteres Unicode

Los caracteres Unicode son aquellos que pertenecen al estándar Unicode, que es un estándar de codificación de caracteres que permite representar la mayoría de los sistemas de escritura del mundo, así como símbolos y caracteres especiales. Los caracteres Unicode se utilizan cuando se necesita admitir una amplia variedad de idiomas y símbolos en la entrada y salida de datos en la terminal.

Códigos CSI con pocos caracteres

Los códigos CSI (Control Sequence Introducer) son secuencias de escape que se utilizan para controlar aspectos de la apariencia y el comportamiento de la terminal. Los códigos CSI con pocos caracteres son aquellos que consisten en una secuencia de escape de control simple que realiza una acción específica, como cambiar el color del texto o mover el cursor a una posición específica en la pantalla.

Códigos de escape largos

Los códigos de escape largos son secuencias de escape más complejas que los códigos CSI con pocos caracteres. Estos códigos pueden realizar acciones más avanzadas, como cambiar las propiedades de la terminal, realizar operaciones de formato de texto más complejas o controlar dispositivos periféricos conectados a la terminal.

Imágenes

En algunas terminales avanzadas, es posible mostrar imágenes directamente en la pantalla utilizando códigos de escape específicos. Estas imágenes pueden ser gráficos simples, como iconos o logotipos, y se utilizan para mejorar la experiencia visual del usuario en la terminal. En resumen, cada uno de estos tipos se utiliza en la terminal para diferentes propósitos, desde la representación de caracteres básicos hasta el control avanzado de la apariencia y el comportamiento de la terminal, e incluso la visualización de imágenes directamente en la pantalla. Su uso depende de las necesidades específicas de la aplicación o del entorno de trabajo en la terminal.

Resultados en MacOS

En MacOS se realizaron las pruebas con los siguientes terminales: Warp, Apple Terminal y Kitty. Sirviendo Kitty y Warp para comparar con las pruebas realizadas en GNU/Linux. A continuación, se presentan los resultados obtenidos:

TerminalSolo caracteres ASCIICaracteres UnicodeCódigos CSI con pocos caracteresCódigos de escape largosImágenes
Warp3.022.552.387.082.67
Apple Terminal7.24.433.7128.229.07
Kitty1.682.7723.412.41

En esta tabla, cada columna representa diferentes tipos de datos. La columna CSI es para datos que consisten en una combinación de códigos de escape de formato típicos y algo de texto solo ASCII.

Resultados en GNU/Linux

En GNU/Linux se realizaron las pruebas con los siguientes terminales: Warp, kgx y Kitty. Siendo kgx la relativamente nueva terminal de Gnome. A continuación, se presentan los resultados obtenidos:

TerminalSolo caracteres ASCIICaracteres UnicodeCódigos CSI con pocos caracteresCódigos de escape largosImágenes
Warp3.453.482.598.212.75
kgx1.281.673.055.373.46
Kitty3.293.041.672.41.81

En esta tabla, cada columna representa diferentes tipos de datos. La columna CSI es para datos que consisten en una combinación de códigos de escape de formato típicos y algo de texto solo ASCII.

Conclusión

Los resultados de nuestra comparativa demuestran que Kitty destaca en términos de rendimiento en ambos sistemas operativos. Con tiempos de procesamiento más rápidos y una menor latencia, Kitty ofrece una experiencia superior en la mayoría de las métricas evaluadas. Si buscas un emulador de terminal que priorice el rendimiento, Kitty es una opción sólida tanto en MacOS como en GNU/Linux.

Contenido Relacionado

PatoJAD

PatoJAD

Arquitecto de Software

Autor

Sobre mi no hay mucho para decir, me dedico a desarrollar en una empresa de telecomunicaciones, utilizo GNU/Linux desde el 2.012 y hace años que es mi Sistema Operativo main. Soy una persona que busca crecer profesionalmente sin dejar de divertirse y hacer lo que me gusta. Siempre digo que cuando un proyecto sale es importante agradecer, por lo cual les recomiendo a todos leer la seccion Agradecimientos en la cual me tomé un tiempito para poder agradecer a todos y cada uno de los que hicieron posible todo esto.