Вышел Wine 10.7: Разработчики продолжают дорабатывать производительность через UFFD, но чудес ждать не стоит

Состоялся очередной плановый выпуск Wine 10.7, инструментария для запуска Windows-приложений в Linux и других UNIX-подобных системах. Как и положено обновлениям, выходящим каждые две недели, новая версия приносит порцию исправлений и некоторые технические новшества, хотя революционных изменений снова не произошло. Основным пунктом программы на этот раз стала интеграция поддержки User Fault FD (UFFD) для улучшения производительности так называемых write-watches, механизма отслеживания записи в память. Разработчики надеются, что это поможет сократить время загрузки в некоторых играх и приложениях, особенно тех, что активно используют определенные методы управления памятью.

Инициатором внедрения UFFD выступил Пол Гофман, инженер CodeWeavers. В своих комментариях он отметил, что первоначальной мотивацией послужили проблемы с производительностью в игре Streets of Rage 4, где загрузка уровней могла занимать до полутора минут, в то время как на Windows это происходило почти мгновенно. Виновником тогда посчитали особенности управления памятью и сборки мусора в .Net Core. Гофман признает, что с тех пор ситуация несколько изменилась – то ли в самой игре, то ли в используемой версии .Net Core – и разница во времени загрузки без оптимизации уже не столь драматична. Тем не менее по его словам, даже сейчас без нового патча загрузка занимает 6-8 секунд вместо 1.5-2 секунд с патчем или на Windows, что все еще указывает на потенциальное улучшение производительности, по крайней мере, для сценариев, связанных с управлением памятью в .Net Core.

В качестве доказательства приводятся результаты неких микро-бенчмарков, где сравнивается производительность под Windows, с использованием нового механизма UFFD (Kernel watches) и старого резервного метода (Fallback). Цифры в этих синтетических тестах действительно показывают преимущество UFFD над резервным методом и в некоторых конфигурациях приближаются или даже слегка превосходят показатели Windows по времени доступа к странице, хотя время выполнения самой функции GetWriteWatch иногда оказывается выше. Однако стоит помнить, что микро-бенчмарки часто показывают идеализированную картину, и реальный прирост производительности в широком спектре игр и приложений может оказаться значительно скромнее или вовсе незаметным. Особенно учитывая, что основной упор делается на специфические проблемы, связанные с .Net.

Помимо работы над производительностью через UFFD, Wine 10.7 включает и другие, менее заметные изменения. Добавлена поддержка преобразования форматов с плавающей запятой в WindowsCodecs, продолжена работа над бэкендом PDB для отладочной информации. Также заявлено об исправлении 14 известных ошибок. Среди них упоминаются проблемы с отсутствием реакции на ввод с клавиатуры в некоторых играх при использовании режима виртуального рабочего стола, а также исправления для корректной работы таких приложений, как WinAmp и HeidiSQL. В общем, стандартный набор рутинных доработок и исправлений, сопровождающий каждый релиз.

Источник: www.playground.ru

0 0 голоса
Рейтинг новости
1
0
Подписаться
Уведомить о
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии