Windows on Arm PC는 Prism을 사용하여 에뮬레이션에서 x86 및 x64 애플리케이션을 실행할 수 있습니다. Prism에는 에뮬레이션이 빠르고 뛰어난 사용자 환경을 위해 수행되도록 하는 많은 최적화가 포함되어 있습니다.
기본적으로 Prism은 성능 최적화와 앱 호환성 간의 최적 균형을 조정합니다. 앱에 Prism에서 실행되는 호환성 문제가 있는 드문 경우에서 Windows는 Prism에서 앱에 사용하는 동작 및 최적화를 조정하는 데 사용할 수 있는 선택적 에뮬레이션 설정을 제공합니다. 이러한 설정을 변경하면 일반적으로 성능이 저하되는 애플리케이션의 호환성이 향상될 수 있습니다.
경고
에뮬레이션 설정을 변경하면 애플리케이션이 예기치 않게 충돌하거나 전혀 시작되지 않을 수 있습니다.
에뮬레이션 설정 열기
앱의 실행 파일을 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 에뮬레이션 설정에 도달할 수 있습니다.
Windows on Arm을 사용하는 경우 호환성 탭에는 Windows on Arm 섹션이 포함됩니다. 에뮬레이션 설정 변경을 선택하여 Arm 에뮬레이션 설정 창을 엽니다.
이전 에뮬레이터 동작 복원
Windows on Arm은 시간이 지남에 따라 지속적으로 개선되고 발전하고 있습니다. 애플리케이션에서 문제가 발생하지만 이전 버전의 Windows on Arm에서 작업한 경우 이전 버전의 Windows on Arm과 일치하도록 Prism의 동작을 재정의하면 문제가 해결될 수 있습니다.
x64 에뮬레이션 기능 숨기기
이 옵션을 선택하면 x86 애플리케이션에서 이 디바이스에서 x64 코드를 실행할 수 없다는 것을 알 수 있습니다. 이 옵션은 Arm의 Windows 10에 존재했던 에뮬레이터의 앱 지원을 모방합니다.
최신 에뮬레이트된 CPU 기능 숨기기
Windows 11 24H2 이상에서 Prism은 이전 버전의 Windows on Arm에서 지원하지 않았던 추가 CPU 기능을 지원합니다. 이러한 기능에는 AVX 및 AVX2뿐만 아니라 BMI, FMA, F16C 및 기타 관련 x86 명령 집합 확장이 포함됩니다.
앱에 대해 이 옵션을 선택하면 에뮬레이터가 이전 버전의 Prism에 존재했던 CPU 기능 지원 수준으로 돌아갑니다.
32비트 x86 앱의 경우 이 옵션은 최신 에뮬레이트된 CPU 기능을 표시하기 위한 옵션으로 바뀝니다. 기본적으로 Prism은 앞에서 언급한 CPU 기능을 32비트 x86 앱에 노출하지 않습니다. 이 옵션을 선택하면 32비트 x86 앱이 업데이트된 CPU 기능 집합을 검색하고 사용할 수 있습니다.
에뮬레이션 설정
Arm 에뮬레이션 설정 창은 에뮬레이션 설정을 수정하는 두 가지 방법을 제공합니다. 미리 정의된 에뮬레이션 설정 그룹을 선택하거나 고급 설정 사용 옵션을 선택하여 개별 설정을 선택하고 선택할 수 있습니다.
에뮬레이션 설정의 미리 정의된 네 그룹은 다음과 같습니다.
- Default
- 안전
- Strict
- 매우 엄격합니다.
기본값에서 안전에서 Strict로 이동하면 추가 에뮬레이션 설정이 설정되며 잠재적으로 호환성이 향상될 수 있도록 성능이 저하됩니다.
고급 설정 사용을 선택하는 경우 애플리케이션에서 여러 CPU 코어를 사용하는 방법을 변경할 수 있습니다. 빠른 다중 코어 작업, 엄격한 다중 코어 작업, 매우 엄격한 작업 또는 단일 코어 강제 작업 중에서 선택할 수 있습니다.
다중 코어 설정은 Prism에서 메모리 장벽을 사용하여 에뮬레이션 중에 앱의 코어 간에 메모리 액세스를 동기화하는 방법을 변경합니다. Fast는 대부분의 앱에 가장 적합한 기본 모드입니다. 엄격하고 매우 엄격한 옵션을 사용하면 장벽 수가 증가하여 앱 속도가 느려지지만 앱 오류의 위험이 줄어듭니다. 단일 코어 옵션은 모든 장벽을 제거하지만 동기화가 필요하지 않도록 모든 앱 스레드가 단일 코어에서 실행되도록 합니다.
나머지 에뮬레이션 설정은 이 표에 설명되어 있습니다.
| 에뮬레이션 설정 | 결과 |
|---|---|
| 애플리케이션 캐시 사용 안 함 | 운영 체제는 후속 실행에서 에뮬레이션 오버헤드를 줄이기 위해 컴파일된 코드 블록을 캐시합니다. 이 설정을 사용하려면 에뮬레이터가 런타임에 모든 앱 코드를 다시 컴파일해야 합니다. |
| 하이브리드 실행 모드 사용 안 함(x86 앱만 해당) | 컴파일된 CHPE(하이브리드 이식 가능 실행 파일) 이진 파일은 성능을 향상시키기 위해 네이티브 Arm64 코드를 포함하는 x86 호환 이진 파일이지만 일부 앱과 호환되지 않을 수 있습니다. 이 설정은 순수 x86 전용 이진 파일을 위해 이러한 하이브리드 이진 파일을 사용하지 않도록 설정합니다. |
| 추가 경량 에뮬레이션 보호 | 이 설정으로 인해 Prism은 이진 파일에 휘발성 메타데이터 가 없음을 무시합니다. |
| 엄격한 자체 수정 코드 지원 | 에뮬레이션에서 자체 수정 코드가 올바르게 지원되도록 하려면 이 설정을 사용하도록 설정합니다. 가장 일반적인 자체 수정 코드 시나리오는 기본 에뮬레이터 동작에서 다룹니다. 이 옵션을 선택하면 실행 중에 자체 수정 코드의 성능이 크게 저하됩니다. |
| RWX 페이지 성능 최적화 사용 안 함 | 이 설정은 RWX(읽기 가능, 쓰기 가능 및 실행 파일) 페이지에서 코드 성능을 향상시키는 최적화를 사용하지 않도록 설정하지만 일부 앱과 호환되지 않을 수 있습니다. |
| 부동 소수점 최적화 사용 안 함 | x87은 부동 소수점 산술 연산을 수행하기 위해 주로 오래된 일부 x86 소프트웨어에서 사용되는 x86 명령 집합 확장으로, 대부분의 소프트웨어에는 필요하지 않은 80비트 고정밀 부동 소수점 형식을 사용할 수 있습니다. 이 옵션을 선택하면 성능 저하를 감수하고 Prism이 64비트 근사치 대신 80비트의 완전한 정밀도를 사용하게 됩니다. |
Windows on Arm