Вышла версия эмулятора терминала Kitty 0.49 с повышенной производительностью

Kitty 0.49 — новейшая версия эмулятора терминала с ускорением на GPU — теперь доступна с поддержкой пользовательских шейдеров, что открывает возможности для реализации широкого спектра визуальных эффектов непосредственно в Kitty. Их можно использовать для анимированных фонов, подсветки активного поля, эффектов перемещения курсора, анимации щелчков мыши и других визуальных настроек, реализуемых с помощью графического процессора.

Что касается производительности, разработчик заявляет, что реальная пропускная способность новой версии должна повыситься на 15–35%, в зависимости от нагрузки.

Рабочие нагрузки с большим объёмом текста получили ряд оптимизаций. Обработка больших объёмов текста с буфером прокрутки, превышающим размер кэша ЦП, стала примерно на 35% быстрее, в то время как для рабочих нагрузок с преобладанием простого ASCII-текста прирост производительности составляет около 50%. Производительность при обработке нагрузок с большим количеством символов Unicode повысилась примерно на 15%.

Декодирование UTF-8 также было оптимизировано с помощью SIMD. Декодирование ASCII стало примерно на 20% быстрее, а при работе с многобайтовым текстом производительность повысилась примерно на 50% как на системах x86, так и на системах ARM. Кроме того, Kitty теперь включает декодер AVX-512, который может обеспечить дополнительное повышение производительности на 75% при обработке многобайтового текста на поддерживаемых процессорах, включая Intel Ice Lake и более новые процессоры, а также AMD Zen 4 и более поздние версии.

Также улучшилась производительность при обработке рабочих нагрузок с большим количеством экранирующих кодов: пропускная способность увеличилась примерно на 30% благодаря изменениям в том, как Kitty обрабатывает блокировку ввода и анализирует параметры CSI. Дополнительные оптимизации на основе SIMD для печатаемого ASCII-текста обеспечивают прирост производительности примерно на 10% при обработке больших объёмов простого текста.

Что касается графической производительности, альфа-смешивание для изображений графического протокола и кадров анимации теперь выполняется в 2–3,5 раза быстрее, при этом альфа-маски глифов используют те же векторизованные примитивы композитинга. Kitty кэширует результаты формирования HarfBuzz для повторяющихся коротких фрагментов текста, сокращая количество ненужных переформатирований при перерисовке.

Помимо производительности, в Kitty 0.49 введено несколько новых параметров настройки и улучшений удобства использования. Новый параметр window_border_radius включает скруглённые границы окон, а remap_modifiers позволяет модификаторам вести себя как другие модификаторы.

Макет «Splits» получил дополнительную опцию пропорционального изменения размера, которая сохраняет вручную настроенные пропорции окна при добавлении, удалении или перемещении панелей. Полоса прокрутки также получила новый режим scrolled-or-hovered, при котором она отображается во время прокрутки или при наведении указателя мыши на область полосы прокрутки.

Функциональность удалённого управления была расширена за счёт новой команды kitten @ screenshot, позволяющей делать снимки экрана в формате PNG с пиксельной точностью для всего окна ОС, вкладки или отдельного окна Kitty. Ещё одна новая команда, kitten @ set-os-window-title, позволяет изменять заголовок уже открытого окна ОС.

Кроме того, теперь можно перетаскивать выделенный текст в другие окна или приложения, если настроено соответствующее действие мыши. Вертикальные вкладки лучше обрабатывают многострочные заголовки, а команда remember_window_size теперь может запоминать, было ли окно развернуто на весь экран. Сессии также сохраняют и восстанавливают макеты, отличные от текущего активного.

Наконец, пользователи Linux получат пользу от исправления заметных задержек при отображении экранов, содержащих много символов, недоступных в основном шрифте. Кроме того, устранены несколько проблем, характерных для Wayland, включая обработку колесика прокрутки при высоком разрешении и совместное использование буфера обмена между экземплярами kitty, запущенными в изолированных контейнерах.

Дополнительные подробности см. в журнале изменений.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)

Автар по умолчанию