3 Punkte von GN⁺ 2024-04-09 | 1 Kommentare | Auf WhatsApp teilen
  • VTE (Virtual TErminal library) ist die Bibliothek, auf der GNOME-Terminalemulatoren basieren. Sie wird in Apps wie GNOME Terminal, Console, Black Box, Tilix, Terminator und Ptyxis verwendet sowie auch in den eingebetteten Terminals von Builder und Workbench.
  • Während des GNOME-46-Zyklus wurde die Performance von VTE deutlich verbessert. In diesem Beitrag wird gemessen, wie stark sich die Leistung tatsächlich verbessert hat und welchen Unterschied Nutzer in der Praxis wahrnehmen können.

Messgegenstand und Methode

  • Es gibt viele Möglichkeiten, die Performance von Terminalemulatoren zu messen, aber dieser Beitrag konzentriert sich auf die Eingabelatenz (Input Latency).
  • Die Eingabelatenz bezeichnet die Zeit vom Drücken einer Taste bis zu dem Moment, in dem sich die Farbe eines Pixels auf dem Monitor ändert. Apps mit niedriger Eingabelatenz wirken reaktionsschnell, während Apps mit hoher Eingabelatenz träge wirken können.
  • Zur Messung der Eingabelatenz wurde ein Hardware-Tester für Eingabelatenz verwendet. Er besteht aus einem Helligkeitssensor, der an ein Teensy-Board angeschlossen ist, und wird per USB mit dem Computer verbunden.

Ergebnisse der Eingabelatenztests

  • Erster Test: Mit dem Befehl cat > /dev/null wird ein Eingabefeld erzeugt, danach wird gemessen, wie lange es dauert, bis sich der Block-Cursor nach dem Drücken der Leertaste um eine Zelle nach rechts bewegt
    • Die VTE-Terminals haben sich unter Fedora 40 im Vergleich zu Fedora 39 deutlich verbessert und liegen nun nahezu auf dem Niveau von Alacritty
  • Zweiter Test: In neovim wird eine README-Datei geöffnet und beim Scrollen des Text-Buffers mit Ctrl+D und Ctrl+U gemessen
    • Auch hier zeigen die VTE-Terminals von GNOME 46 deutliche Verbesserungen und erreichen nahezu das Niveau von Alacritty
  • Ein Vergleich aller Terminals unter Fedora 40 zeigt, dass die Eingabelatenz im neovim-Test höher ist als im cat-Test, sie jedoch bei allen Terminals in ähnlichem Maß ansteigt

Ergebnisse des vtebench-Tests

  • Die vtebench-Testsuite von Alacritty wurde in derselben Umgebung ausgeführt
  • Dabei handelt es sich um einen Test zur Messung der PTY-Lese- und Parsing-Performance, der auch hilfreich ist, um Abstürze in VTE zu finden
  • VTE in GNOME 46 zeigte auch in vtebench Verbesserungen, erreichte aber nicht das Niveau von Alacritty

Fazit

  • In GNOME 46 wurde die Performance von VTE deutlich verbessert, sodass die Eingabelatenz nun nahezu auf dem Niveau der schnellsten Terminals liegt
  • Wer VTE-basierte Terminals bisher wegen träger Reaktion und hoher Eingabelatenz gemieden hat, sollte ihnen jetzt noch einmal eine Chance geben (empfohlen wird VTE ab Version 0.76)

Meinung von GN⁺

  • Die Performance-Verbesserungen bei VTE-basierten Terminals sind sehr ermutigend. Sie dürften erheblich zur Verbesserung der User Experience beitragen.
  • Interessant ist der Einsatz eines Hardware-Testers zur Messung der Eingabelatenz. Auch die ausführliche Erklärung des Testablaufs und der Interpretation der Ergebnisse war aufschlussreich.
  • Ein Vergleich mit Terminal.app, dem Standard-Terminal von macOS, oder mit dem neuen Windows Terminal wäre ebenfalls spannend.
  • Es ist zu erwarten, dass die Performance-Verbesserungen von VTE positive Auswirkungen auf das gesamte GNOME-Ökosystem haben werden. Es scheint allerdings weiterhin Bereiche mit Verbesserungspotenzial zu geben, etwa bei Barrierefreiheit und Scrollbars.
  • Für Linux-Desktop-Nutzer sind das sehr erfreuliche Nachrichten. Es bleibt zu hoffen, dass sich verschiedene Terminalemulatoren auf Basis der Verbesserungen in VTE weiterentwickeln werden.

1 Kommentare

 
GN⁺ 2024-04-09

Hacker-News-Kommentare

  • Es ist zwar ein Erfolg, dass die Eingabelatenz des aktuellen GNOME-Terminals nun geringer ist als die des Apple-//e-Computers von 1983, aber die Testumgebung unterscheidet sich von der realen Nutzungsumgebung
    • Der Test wurde nicht in GNOME Shell, sondern in der Barebones-Umgebung raw Mutter durchgeführt
    • Die Tastaturlatenz ist nicht enthalten, daher handelt es sich nicht um eine End-to-End-Latenzmessung (die Tastaturlatenz kann bis zu 60 ms betragen)
    • Es ist zu erwarten, dass die tatsächliche End-to-End-Latenz mit den Standardeinstellungen höher ist
  • Gemessen wurde in der Mitte des Monitors, aber zwischen oberem und unterem Bildschirmrand kann ein Unterschied von 8 ms bestehen (weil Pixel wie bei einer CRT von oben nach unten gezeichnet werden)
  • Ein einfacher Vergleich zwischen Monitoren ist schwierig. Es kann durch Treiber oder Profile verursachte, nicht direkt vergleichbare Effekte geben
  • Es ist ironisch, dass man in einer Zeit mit realistischem 3D-Rendering noch Probleme bei der Ausgabe von Terminaltext lösen muss
  • Beeindruckend sind die Bemühungen des VTE-Entwicklers zur Leistungssteigerung und zur hardwarebasierten Messung der Latenz
  • Frage, ob es unter Linux ein Terminal wie das macOS-Terminal gibt, das Verlauf und Scrollback pro Tab speichert
  • Meinung eines Nutzers, der GNOME lange verwendet hat, aber nach dem Wechsel zu sway+alacritty keinen Unterschied mehr bemerkt
  • Erwähnung des Problems mit der kleinen anfänglichen Fenstergröße von GNOME Terminal und dass sich die Größe nicht speichern lässt
  • Meinung, dass jemand mit xterm+i3wm nichts Schnelleres erlebt hat und alacritty mit GPU-Unterstützung Overkill sei
  • Wunsch, dass auch Mitchelle Hashimotos Ghostty-Terminal in den Benchmarks enthalten sein sollte
  • Die Einschätzung, dass dieser Benchmark gut war, weil er nicht nur ein einfacher cat-Test war, und dass man noch mehr Terminals testen sollte, insbesondere die native Linux-Konsole