3 points par GN⁺ 2024-04-09 | 1 commentaires | Partager sur WhatsApp
  • VTE (Virtual TErminal library) est la bibliothèque qui sert de base aux émulateurs de terminal GNOME. Elle est utilisée par des applications comme GNOME Terminal, Console, Black Box, Tilix, Terminator et Ptyxis, ainsi que par les terminaux intégrés de Builder et Workbench.
  • Pendant le cycle de GNOME 46, les performances de VTE se sont nettement améliorées. Cet article mesure l’ampleur réelle de ce gain et examine quelle différence les utilisateurs peuvent percevoir en pratique.

Ce qui a été mesuré et la méthode

  • Il existe plusieurs façons de mesurer les performances d’un émulateur de terminal, mais cet article se concentre sur la latence de saisie (Input Latency).
  • La latence de saisie correspond au temps écoulé entre le moment où l’on appuie sur une touche du clavier et celui où la couleur des pixels change à l’écran. Une application avec une faible latence de saisie paraît plus réactive, tandis qu’une application avec une latence élevée peut sembler lente.
  • Pour mesurer cette latence, un testeur matériel de latence d’entrée a été utilisé. Il est composé d’un capteur de luminosité relié à une carte Teensy, elle-même connectée à l’ordinateur via USB.

Résultats des tests de latence de saisie

  • Premier test : création d’un champ de saisie avec la commande cat > /dev/null, puis mesure du temps nécessaire pour que le curseur bloc se déplace d’une cellule vers la droite après avoir appuyé sur la touche Espace
    • Les terminaux VTE se sont fortement améliorés sous Fedora 40 par rapport à Fedora 39, au point d’atteindre un niveau presque équivalent à celui d’Alacritty
  • Deuxième test : ouverture d’un fichier README dans neovim, puis mesure pendant le défilement du tampon de texte avec Ctrl+D et Ctrl+U
    • Là aussi, les terminaux VTE de GNOME 46 montrent une nette amélioration et affichent des performances presque équivalentes à celles d’Alacritty
  • En comparant tous les terminaux de Fedora 40 en une seule fois, le test sous neovim montre une hausse de la latence de saisie par rapport au test avec cat, mais cette hausse reste d’un niveau similaire pour tous les terminaux

Résultats des tests vtebench

  • Exécution de la suite de tests vtebench d’Alacritty dans le même environnement
  • Il s’agit de tests mesurant les performances de lecture et d’analyse du PTY, également utiles pour détecter des crashs dans VTE
  • Le VTE de GNOME 46 montre aussi des progrès dans vtebench, sans toutefois atteindre le niveau d’Alacritty

Conclusion

  • Dans GNOME 46, les performances de VTE se sont fortement améliorées, au point que la latence de saisie atteint presque le niveau des terminaux les plus rapides
  • Si vous évitiez jusqu’ici les terminaux basés sur VTE à cause de leur lenteur de réaction et de leur latence de saisie, cela vaut désormais la peine de leur redonner une chance (version recommandée : VTE 0.76 ou supérieure)

Avis de GN⁺

  • Les gains de performances des terminaux basés sur VTE sont très encourageants. Ils devraient contribuer de manière significative à améliorer l’expérience utilisateur.
  • L’utilisation d’un testeur matériel pour mesurer la latence de saisie est intéressante. Les explications détaillées sur le processus de test et l’interprétation des résultats étaient également instructives.
  • Il serait aussi intéressant de comparer ces résultats au terminal par défaut de macOS, Terminal.app, ou au nouveau terminal de Windows, Windows Terminal.
  • On peut s’attendre à ce que les améliorations de performances de VTE aient un impact positif sur l’ensemble de l’écosystème GNOME. Il semble toutefois rester des marges de progression sur certains points, comme l’accessibilité ou les barres de défilement.
  • C’est une très bonne nouvelle pour les utilisateurs de bureaux Linux. On peut espérer que les différents émulateurs de terminal continueront à progresser en s’appuyant sur les améliorations apportées à VTE.

1 commentaires

 
GN⁺ 2024-04-09

Avis Hacker News

  • Le fait que la latence de saisie du terminal GNOME le plus récent soit désormais inférieure à celle de l’Apple //e de 1983 est une réussite, mais l’environnement de test diffère des conditions d’usage réelles
    • Les tests ont été effectués sur raw Mutter, un environnement minimal, et non sur GNOME Shell
    • La latence du clavier n’est pas incluse, ce n’est donc pas une mesure de la latence de bout en bout (la latence du clavier peut atteindre 60 ms)
    • On peut s’attendre à une latence réelle de bout en bout plus élevée avec les paramètres par défaut
  • La mesure a été faite au centre de l’écran, mais il peut y avoir jusqu’à 8 ms d’écart entre le haut et le bas du moniteur (car les pixels sont dessinés de haut en bas, comme sur un CRT)
  • Les comparaisons directes entre moniteurs sont difficiles. Il peut exister des effets non comparables dus aux pilotes ou aux profils
  • Il est ironique qu’à une époque capable de rendu 3D réaliste, on en soit encore à résoudre les problèmes d’affichage de texte dans un terminal
  • Les efforts du développeur de VTE pour améliorer les performances et mesurer la latence avec du matériel dédié sont impressionnants
  • Question sur l’existence d’un terminal Linux qui, comme Terminal sur macOS, mémorise l’historique et le scrollback pour chaque onglet
  • Avis d’un utilisateur de longue date de Gnome qui dit ne pas voir de différence après être passé à sway+alacritty
  • Mention de la petite taille initiale de la fenêtre de Gnome Terminal et du problème de non-conservation de sa taille
  • Avis selon lequel, en utilisant xterm+i3wm, il n’a jamais constaté de solution plus rapide, et qu’alacritty, avec son usage du GPU, relève de l’overkill
  • Avis selon lequel ce serait bien d’inclure aussi le terminal Ghostty de Mitchelle Hashimoto dans le benchmark
  • Avis positif sur ce benchmark, qui ne se limite pas à un simple test cat, avec le souhait de tester davantage de terminaux, en particulier la console Linux native