GNOME 46 Optimizations Boost Terminal Emulator Efficiency

The results of the performance check published optimizations added to the library vte (Virtual Terminal Library) and included in the GNOME 46 release. When testing, the responsiveness of the interface in the emulators of the terminal alacritte, console (gtk 4), gnome Terminal (gtk 3 and 4) and VTE Test App (an example from the VTE repository), when they are launched in Fedora 39 with GNOME 45 and in Fedora 40-Beta with GNOME 46. The Alacritty app is not used and selected as a standard, since Judging by the past tests, it is one of the fastest terminal emulators. For measurement, a hardware sensor was used on the basis of the board teensy, measuring the time between pressing the button and the appearance of information on the screen.

The VTE library provides a ready-made GTK widget used in various emulators of the terminal for GNOME, including gnome terminal, console, Blackk Box, tilix, terminator and ptyxis. In the GNOME 46 version in VTE, internal structures are significantly processed, which, according to developers, led to acceleration of operations, the increase in performance of which reached 40%in tests. From the practical side of optimization, they led to a decrease in delayed dears in configurations with GTK 4. Previously, delays when entering from the keyboard in Console and Gnome Termina were noticeable, which repelled many users from the use of regular terminal emulators for GNOME. When using the VTE 0.76 version, this problem is solved.

The independent testing confirmed a noticeable decrease in data input delays in applications based on VTE, which is observed not only in simple but also complex scenarios of terminals, for example, when using Neovim, the input of the input of terminal emulators based on VTE was reduced to the level of the fastest terminal of Alacritty . In particular, in a test related to the use of the “CAT” utility, the reaction to the keystrokes in CONSOLE and GNOME Terminal decreased to 40 to 10 ms, and in the scroll test in Neovim – from 45 to 25 ms.



/Reports, release notes, official announcements.