Двукратный прирост производительности JIT
Разработчики открытого эмулятора FEX (FEX-Emu) выпустили релиз 2609, сфокусировавшись на оптимизации механизма Just-In-Time (JIT) компиляции. Ключевым достижением стала оптимизация инструкции PMULHRSW, что позволило увеличить показатели в бенчмарке Geekbench. По словам авторов, в некоторых сценариях, включая игровые, прирост производительности достигает 2x.
Также ускорена система обнаружения самовоспроизводящегося кода (self-modifying-code) в режиме «full», что критически важно для стабильной работы игр на движке Unity. Дополнительно разработчики снизили уровень блокировок (lock-contention) в JIT, позволяя нескольким потокам компилировать код параллельно с меньшими задержками.
Новая функция: кэш JIT на диске
Важным нововведением стала поддержка кэширования скомпилированного JIT-кода на диск. Это решение направлено на устранение «статтеров» (микрозадержек) при повторных запусках игр и приложений. Функция активируется через переменную окружения FEX_DISKCACHE=1 или через JSON-конфигурацию.
На данный момент кэш не имеет ограничений по размеру или механизмов защиты, однако разработчики анонсировали добавление этих функций в будущих обновлениях.
Технические детали и совместимость
FEX продолжает оставаться ключевым инструментом для запуска Linux x86_64 бинарных файлов (включая Steam и Steam Play/Proton) на системах с архитектурой AArch64. Обновление также включает переработанный логотип проекта.
| Параметр | Описание изменений в FEX 2609 |
|---|---|
| Производительность | До 2x ускорение в Geekbench и играх за счет оптимизации PMULHRSW |
| Unity-игры | Ускорено обнаружение самовоспроизводящегося кода |
| Многопоточность | Снижена блокировка потоков при параллельной JIT-компиляции |
| Кэширование | Добавлен диск-кэш (переменная FEX_DISKCACHE=1) для устранения задержек при повторных запусках |
| Платформа | Linux x86_64 на ARM64 (AArch64), поддержка Steam/Proton |
Почему это важно
Для пользователей ARM64-устройств (включая портативные консоли и одноплатные компьютеры) FEX становится всё более жизнеспособной альтернативой нативным решениям. Двукратный прирост в синтетических тестах и устранение задержек при загрузке кэшированного кода напрямую влияют на игровой опыт, делая эмуляцию x86-приложений на ARM более плавной и предсказуемой.
Источник: Phoronix ↗
