Оценка влияния оптимизаций в GNOME 46 на эффективность работы эмуляторов терминала

Опубликованы результаты проверки эффективности оптимизаций, добавленных в библиотеку VTE (Virtual TErminal library) и вошедших в состав релиза GNOME 46. При тестировании измерена отзывчивость интерфейса в эмуляторах терминала Alacritty, Console (GTK 4), GNOME Terminal (GTK 3 и 4) и VTE Test App (пример из репозитория VTE), при их запуске в Fedora 39 с GNOME 45 и в Fedora 40-beta с GNOME 46. Приложение Alacritty не использует библиотеку VTE и выбрано в качестве эталона, так как, судя по прошлым тестам, является одним из наиболее быстрых эмуляторов терминалов. Для измерения использовался аппаратный датчик на базе платы Teensy, измеряющий время между нажатием кнопки и появлением информации на экране.

Библиотека VTE предоставляет готовый виджет GTK, используемый в различных эмуляторах терминала для GNOME, среди которых GNOME Terminal, Console, Black Box, Tilix, Terminator и Ptyxis. В версии GNOME 46 в VTE существенно переработаны внутренние структуры, что, по оценке разработчиков, привело ускорению операций, прирост производительности которых достигал в тестах 40%. C практической стороны оптимизации привели к снижению задержек при отрисовке в конфигурациях с GTK 4. Ранее задержки при вводе с клавиатуры в Console и GNOME Termina были ощутимы, что отталкивало многих пользователей от использования штатных эмуляторов терминала для GNOME. При использовании версии VTE 0.76 эта проблема решена.

Проведённое независимое тестирование подтвердило заметное снижение задержек ввода данных в приложениях на базе VTE, которое наблюдается не только в простых, но и сложных сценариях использования терминалов Например, при использовании neovim задержки ввода эмуляторов терминала на базе VTE сократились до уровня наиболее быстрого терминала Alacritty. В частности в тесте, связанном с использование утилиты “cat”, реакция на нажатие клавиш в Console и GNOME Terminal снизились до 40 до 10 мс, а в тесте прокрутки в neovim – с 45 до 25 мс.






Ускорение работы при использовании новой версии библиотеки VTE также отмечено в тестовом наборе vtebench, который измеряет не задержки ввода, а время чтения из устройства PTY и производительность разбора (тесты скорости прокрутки и перемещения курсора). При этом в большинстве тестов vtebench терминал Alacritty обгоняет Console и GNOME Terminal. Отчасти отставание GNOME Terminal объясняется накладными расходами на поддержку средств для людей с ограниченными возможностями (accessibility).


Release. Ссылка here.