Поделиться через


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

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

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

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

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

снимок экрана: параметры совместимости для устранения неполадок.

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

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

Снимок экрана параметров

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

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

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

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

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

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

Изменение параметров эмуляции скриншот

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

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

Изменение параметров эмуляции снимок экрана2

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

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

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

Снимок экрана параметров многоядерности

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

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