다음을 통해 공유


Arm의 프로그램 호환성 문제 해결사

Arm을 기반으로 하는 PC는 뛰어난 애플리케이션 호환성을 제공하며 기존 x86 win32 애플리케이션을 수정하지 않고 실행할 수 있습니다. Arm 앱은 기본적으로 에뮬레이션 없이 실행되는 반면, x86 및 x64 앱은 Arm 디바이스에서 에뮬레이션으로 실행됩니다.

그러나 에뮬레이션이 최상의 사용자 환경을 제공하지 않는 최적화를 수행하는 경우가 있습니다. 프로그램 호환성 문제 해결를 사용하여 x86 또는 x64 앱에 대한 에뮬레이션 설정을 전환하여 기본 최적화를 줄이고 잠재적으로 호환성을 높일 수 있습니다.

프로그램 호환성 문제 해결사 시작

모든 Windows PC에서와 마찬가지로 수동으로 프로그램 호환성 문제 해결사를 시작할 수 있습니다. 실행 파일(.exe)을 마우스 오른쪽 버튼으로 클릭하고 호환성 문제 해결을 선택합니다. 그런 다음 권장되는 호환성 설정을 사용하여 프로그램을 테스트하는 권장 설정을 시도하거나 문제 해결 프로그램을 사용하여 발견한 특정 문제에 따라 호환성 설정을 선택하는 옵션을 사용할 수 있습니다.

호환성 문제 해결 옵션의 스크린샷

문제 해결 프로그램을 선택하면 다음을 선택할 수 있습니다.

  • 이 프로그램은 이전 버전의 Windows에서 작동했지만 지금은 설치 또는 실행되지 않습니다.
  • 프로그램은 열리지만 제대로 표시되지 않음
  • 프로그램에 추가 권한이 필요합니다.
  • 내 문제가 나열되어있지 않음

옵션을 확인할 수 있는 문제 스크린샷.

모든 옵션은 Windows 데스크톱 PC에 적용 가능하며 적용된 설정을 사용하도록 설정합니다. 또한 첫 번째, 두 번째 및 네 번째 옵션은 Disable application cacheDisable hybrid execution mode에뮬레이션 설정을 적용합니다. (자세한 내용은 아래 에뮬레이션 설정 테이블을 참조하세요.)

에뮬레이션 설정 전환

Warning

에뮬레이션 설정을 변경하면 예기치 않게 충돌이 발생하거나 애플리케이션이 전혀 실행되지 않을 수 있습니다.

실행 파일을 마우스 오른쪽 버튼으로 클릭하고 속성을 선택하여 에뮬레이션 설정을 전환할 수 있습니다.

ARM의 경우 호환성 탭에서 ARM의 Windows 10 또는 ARM의 Windows 11 섹션을 사용할 수 있습니다. 에뮬레이션 설정 변경을 선택하여 에뮬레이션 속성 창 시작합니다.

에뮬레이션 설정 변경 스크린샷

이 에뮬레이션 속성 창은 에뮬레이션 설정을 수정하는 두 가지 방법을 제공합니다. 미리 정의된 에뮬레이션 설정 그룹을 선택하거나 고급 설정 사용 옵션을 선택하여 개별 설정을 선택할 수 있습니다.

다음 에뮬레이션 설정은 품질에 맞게 성능 최적화를 줄이고 Windows on Arm에서 실행할 때 x86 또는 x64 앱의 호환성을 테스트하는 데 사용할 수 있습니다.

에뮬레이션 설정 변경 스크린샷2

이 표에 설명된 대로 고급 설정 사용을 선택하여 개별 설정을 선택합니다.

에뮬레이션 설정 결과
애플리케이션 캐시 사용 안 함 운영 체제는 다음 실행 시 에뮬레이션 오버헤드를 줄이기 위해 컴파일된 코드 블록을 캐시합니다. 이 설정은 런타임에서 에뮬레이터가 모든 앱 코드를 다시 컴파일하도록 합니다.
하이브리드 실행 모드 사용 안 함 컴파일된 CHPE(하이브리드 이식 가능한 실행 파일)인 이진 파일은 성능 향상을 위해 네이티브 Arm64 코드를 포함하는 x86 호환 이진 파일이지만 일부 앱과 호환되지 않을 수 있습니다. 이 설정은 x86 전용 이진 파일 사용을 요구합니다.
추가 경량 에뮬레이션 보호 에뮬레이션에서 x86 또는 x64 앱을 실행할 때 성능에 영향을 미칠 수 있는 휘발성 메타데이터와 같은 항목에 영향을 주는 포괄적인 업데이트입니다.
엄격한 자동 수정 코드 지원 모든 자체 수정 코드가 에뮬레이션에서 올바르게 지원되는지 확인하려면 이 옵션을 활성화합니다. 가장 일반적인 자동 수정 코드 시나리오는 기본 에뮬레이터 동작에 의해 처리됩니다. 이 옵션을 사용하면 실행 시 자동 수정 코드의 성능이 크게 저하됩니다.
RWX 페이지 성능 최적화 사용 안 함 이 최적화를 통해 읽을 수 있고, 쓸 수 있고, 실행할 수 있는(RWX) 페이지에서 코드의 성능을 향상할 수 있지만 일부 앱과 호환되지 않을 수 있습니다.
JIT 최적화 비활성화(x64 앱만 해당) 해당 기능은 더 이상 사용되지 않으며 이후 버전의 문제 해결사에서 제거됩니다.
부동 소수점 최적화 비활성화(x64 앱만 해당) x87 부동 소수점을 전체 80비트 전체 정밀도로 에뮬레이트하지만 성능 비용이 발생하니 이 부분을 확인하세요. x87은 32비트 또는 64비트 형식보다 정밀도가 높은 80비트 부동 소수점 형식을 사용하여 부동 소수점 산술 연산을 수행하고자 일부 이전 x86 프로세서에서 사용되는 부동 소수점 공동 프로세서입니다.

또한 애플리케이션에서 여러 CPU 코어를 사용하는 방법을 변경할 수 있습니다. 빠르고, 엄격한 다중 코어 작업, 매우 엄격한 작업 또는 단일 코어 강제 작업 중에서 선택할 수 있습니다. 호환성 문제가 발견되면 이러한 설정을 사용하여 Windows on Arm을 실행할 때 앱 에뮬레이션을 테스트합니다.

다중 코어 설정 스크린샷

이러한 설정은 에뮬레이션 중 앱의 코어 간 메모리 액세스를 동기화하는 데 사용되는 메모리 장벽의 수를 변경합니다. 빠름이 기본 모드이지만 엄격매우 엄격 옵션이 장벽의 수를 늘립니다. 이는 앱의 속도를 느리게 하지만 앱 오류의 위험은 감소합니다. 단일 코어 옵션을 선택하면 모든 장벽이 제거되지만 단일 코어에서 모든 앱 스레드가 실행됩니다.

특정 설정을 변경하여 문제가 해결되면 피드백을 제공하기 위해 자세한 내용을 기입하여 woafeedback@microsoft.com으로 이메일을 보내주세요.