Средство устранения проблем с совместимостью программ на архитектуре ARM

Компьютеры на основе Arm обеспечивают отличную совместимость приложений и позволяют запускать существующие неизмененные приложения x86 win32. Приложения Arm выполняются изначально без эмуляции, а приложения x86 и x64 выполняются под эмуляцией на устройствах Arm.

Однако иногда эмуляция выполняет оптимизацию, которая не приводит к лучшему пользовательскому интерфейсу. Средство устранения неполадок совместимости программ можно использовать для переключения параметров эмуляции для приложения x86 или x64, снижения оптимизации по умолчанию и потенциально повышения совместимости.

Запуск средства устранения неполадок совместимости программ

Средство устранения неполадок совместимости программ запускается вручную на любом компьютере с Windows: щелкните правой кнопкой мыши исполняемый файл (.exe) и выберите "Устранение неполадок совместимости". Затем вы сможете попробовать рекомендуемые параметры для тестирования программы с помощью рекомендуемых параметров совместимости или программы устранения неполадок, чтобы выбрать параметры совместимости на основе определенных проблем, которые вы заметили.

Screenshot of the Troubleshoot compatibility options.

Если выбрать программу устранения неполадок, вы сможете выбрать следующую команду:

  • Программа работала в более ранних версиях Windows, но не будет устанавливать или запускаться сейчас
  • Откроется программа, но не отображается правильно
  • Для программы требуются дополнительные разрешения
  • Я не вижу моей проблемы в списке

Screenshot of the What problems do you notice options.

Все параметры позволяют использовать применимые параметры и применяться на компьютерах с настольными компьютерами Windows. Кроме того, первые, второй и четвертый параметры применяют Disable application cache параметры эмуляции.Disable hybrid execution mode (См. таблицу параметров эмуляции ниже для описания.)

Переключение параметров эмуляции

Предупреждение

Изменение параметров эмуляции может привести к неожиданному сбою приложения или не запуску вообще.

Параметры эмуляции можно переключать, щелкнув исполняемый файл правой кнопкой мыши и выбрав пункт "Свойства".

В ARM раздел с названием Windows 10 в ARM или Windows 11 на ARM будет доступен на вкладке "Совместимость". Выберите "Изменить параметры эмуляции", чтобы запустить эмуляцию окно свойств.

Change emulation settings screenshot

Эти эмуляции окно свойств предоставляют два способа изменения параметров эмуляции. Можно выбрать предварительно определенную группу параметров эмуляции или выбрать параметр "Использовать дополнительные параметры ", чтобы включить выбор отдельных параметров.

Следующие параметры эмуляции снижают оптимизацию производительности в пользу качества и можно использовать для экспериментов с проверкой совместимости приложения x86 или x64 при запуске в Windows on Arm.

Change emulation settings screenshot2

Выберите "Использовать дополнительные параметры" , чтобы выбрать отдельные параметры, как описано в этой таблице.

Параметр эмуляции Результат
Отключение кэша приложений Операционная система кэширует скомпилированные блоки кода, чтобы уменьшить затраты на эмуляцию при последующих выполнениях. Этот параметр требует, чтобы эмулятор перекомпилировать весь код приложения во время выполнения.
Отключение режима гибридного выполнения Скомпилированные гибридные переносимые исполняемые файлы (CHPE) — это двоичные файлы, совместимые с x86, которые включают собственный код Arm64 для повышения производительности, но это может быть несовместимо с некоторыми приложениями. Этот параметр принудительно использует двоичные файлы только x86.
Дополнительные упрощенные защиты эмуляции Обновление catch-all влияет на переменные метаданные, которые могут повлиять на производительность при выполнении приложения x86 или x64 в эмуляции.
Поддержка строгого самостоятельного изменения кода Включите это, чтобы убедиться, что любой самообредяющийся код правильно поддерживается в эмуляции. Наиболее распространенные сценарии самостоятельного изменения кода рассматриваются поведением эмулятора по умолчанию. Включение этого параметра значительно снижает производительность самостоятельно изменяющегося кода во время выполнения.
Отключение оптимизации производительности страницы RWX Эта оптимизация повышает производительность кода на читаемых, записываемых и исполняемых страницах (RWX), но может быть несовместима с некоторыми приложениями.
Отключение оптимизации JIT (только для приложений x64) Это больше не используется и будет удалено в будущих версиях средства устранения неполадок.
Отключение оптимизации с плавающей запятой (только для приложений x64) Проверьте, чтобы эмулировать точку с плавающей запятой x87 в полной 80-разрядной точности, но по затратам на производительность. x87 — это копроцессор с плавающей запятой, используемый в некоторых старых процессорах x86 для выполнения арифметики с плавающей запятой с 80-разрядной запятой с более высокой точностью, чем 32-разрядный или 64-разрядный формат.

Вы также можете изменить способ использования нескольких ядер ЦП, выбора между быстрой, многоядерными операцией, очень строгой или принудительной одноядерными операцией. Проверьте эмуляцию приложений при запуске Windows в Arm с помощью этих параметров, если вы заметили проблемы совместимости.

Multi-core settings screenshot

Эти параметры изменяют количество барьеров памяти, используемых для синхронизации доступа к памяти между ядрами в приложениях во время эмуляции. Быстрый режим по умолчанию, но строгие и очень строгие параметры увеличивают количество барьеров. Это замедляет работу приложения, но снижает риск ошибок приложения. Параметр с одним ядром удаляет все барьеры, но заставляет все потоки приложений выполняться на одном ядре.

При изменении определенного параметра устраните проблему, отправьте сообщение электронной почты woafeedback@microsoft.com с подробными сведениями, чтобы мы могли включить свой отзыв.