Udostępnij przez


Dostosowywanie ustawień emulacji na ramieniu

System Windows na komputerach arm obsługuje uruchamianie aplikacji x86 i x64 w ramach emulacji przy użyciu narzędzia Prism. Prism obejmuje wiele optymalizacji w celu zapewnienia, że emulacja jest szybka i wydajna dla dobrego środowiska użytkownika.

Domyślnie prism zapewnia optymalną równowagę między optymalizacjami wydajności a zgodnością aplikacji. W rzadkim przypadku, gdy aplikacja ma problemy ze zgodnością podczas uruchamiania w środowisku Prism, system Windows udostępnia opcjonalne ustawienia emulacji, których można użyć do dostosowania zachowania i optymalizacji, które Prism stosuje do tej aplikacji. Zmiana tych ustawień może potencjalnie zwiększyć zgodność aplikacji, zazwyczaj kosztem wydajności.

Ostrzeżenie

Zmiana ustawień emulacji może spowodować nieoczekiwane awarie aplikacji lub uniemożliwić jej uruchomienie.

Otwieranie ustawień emulacji

Możesz uzyskać dostęp do ustawień emulacji, klikając prawym przyciskiem myszy plik wykonywalny aplikacji i wybierając pozycję Właściwości.

W przypadku korzystania z systemu Windows w usłudze Arm karta Zgodność zawiera sekcję zatytułowaną Windows on Arm. Wybierz pozycję Zmień ustawienia emulacji, aby otworzyć okno Ustawień emulacji Arm.

Zrzut ekranu przedstawiający zmienianie ustawień emulacji

Przywracanie poprzedniego zachowania emulatora

System Windows w usłudze Arm nadal się poprawia i rozwija wraz z upływem czasu. Jeśli aplikacja napotka problem, ale pracowała nad poprzednią wersją systemu Windows w usłudze Arm, zastąpienie zachowania Prism w celu dopasowania do poprzedniej wersji systemu Windows w usłudze Arm może rozwiązać ten problem.

Ukryj możliwość emulacji x64

Po wybraniu tej opcji aplikacje x86 widzą, że na tym urządzeniu nie można uruchomić kodu x64. Ta opcja naśladuje obsługę aplikacji emulatora, ponieważ istniała w systemie Windows 10 w usłudze Arm.

Ukrywanie nowszych emulowanych funkcji procesora CPU

W systemie Windows 11 24H2 i nowszych prism obsługuje dodatkowe funkcje procesora CPU, które poprzednie wersje systemu Windows w usłudze Arm nie obsługują. Te funkcje obejmują AVX i AVX2, a także BMI, FMA, F16C i inne powiązane rozszerzenia zestawu instrukcji x86.

Po wybraniu tej opcji dla aplikacji emulator powróci do poziomu obsługi funkcji procesora CPU, który istniał w poprzedniej wersji prism.

W przypadku 32-bitowych aplikacji x86 ta opcja jest zastępowana jednym z opcji Pokaż nowsze funkcje emulowanego procesora CPU. Domyślnie Prism nie uwidacznia funkcji CPU wymienionych wcześniej w 32-bitowych aplikacjach x86. Po wybraniu tej opcji 32-bitowa aplikacja x86 może wykryć i użyć zaktualizowanego zestawu funkcji procesora CPU.

Ustawienia emulacji

Okno Ustawienia emulacji arm zawiera dwa sposoby modyfikowania ustawień emulacji. Możesz wybrać wstępnie zdefiniowaną grupę ustawień emulacji lub wybrać opcję Użyj ustawień zaawansowanych , aby włączyć wybieranie i wybieranie poszczególnych ustawień.

Cztery wstępnie zdefiniowane grupy ustawień emulacji to:

  • Default
  • Bezpieczny
  • Surowy
  • Bardzo ścisłe

Przejście z domyślnej do bezpiecznej do ścisłej do bardzo rygorystycznych ustawia dodatkowe ustawienia emulacji, handluj wydajnością w celu potencjalnie zwiększenia zgodności.

Zrzut ekranu przedstawiający zmienianie ustawień emulacji2

W przypadku wybrania opcji Użyj ustawień zaawansowanych możesz zmienić sposób używania wielu rdzeni procesora CPU przez aplikację, wybierając między operacjami Szybkie, Ścisłe wielordzeniowe, Bardzo ścisłe lub Wymuś jednordzeniową operację.

Ustawienia wielordzeniowe zmieniają sposób, w jaki prism używa barier pamięci do synchronizowania dostępu do pamięci między rdzeniami w aplikacjach podczas emulacji. Tryb szybki to tryb domyślny, który jest optymalnym saldem dla większości aplikacji. Ścisłe i bardzo rygorystyczne opcje zwiększą liczbę barier, spowalniając aplikację, ale zmniejszając ryzyko błędów aplikacji. Opcja pojedynczego rdzenia usuwa wszystkie bariery, ale wymusza uruchamianie wszystkich wątków aplikacji na jednym rdzeniu, aby uniknąć konieczności synchronizacji.

Zrzut ekranu przedstawiający ustawienia wielordzeniowe

Pozostałe ustawienia emulacji zostały opisane w tej tabeli.

Ustawienie emulacji Wynik
Wyłącz pamięć podręczną aplikacji System operacyjny buforuje skompilowane bloki kodu, aby zmniejszyć obciążenie emulacji w kolejnych wykonaniach. To ustawienie wymaga ponownego skompilowania całego kodu aplikacji w czasie wykonywania.
Wyłączanie trybu wykonywania hybrydowego (tylko aplikacje x86) Skompilowane pliki binarne hybrydowego pliku wykonywalnego przenośnego (CHPE) to pliki binarne zgodne z x86, które zawierają natywny kod Arm64 w celu zwiększenia wydajności, ale mogą nie być zgodne z niektórymi aplikacjami. To ustawienie wyłącza korzystanie z tych hybrydowych plików binarnych na rzecz czystych plików binarnych tylko x86.
Dodatkowe lekkie zabezpieczenia emulacji To ustawienie powoduje, że Prism ignoruje obecność jakichkolwiek nietrwałych metadanych w pliku binarnym.
Ścisła obsługa samomodyfikującego się kodu Włącz to ustawienie, aby upewnić się, że każdy kod samomodyfikujący jest poprawnie obsługiwany w emulacji. Najbardziej typowe scenariusze samodzielnego modyfikowania kodu są objęte domyślnym zachowaniem emulatora. Wybranie tej opcji znacznie zmniejsza wydajność kodu modyfikującego się samodzielnie podczas wykonywania.
Wyłączanie optymalizacji wydajności strony RWX To ustawienie wyłącza optymalizację, która poprawia wydajność kodu na stronach czytelnych, zapisywalnych i wykonywalnych (RWX), ale może być niezgodna z niektórymi aplikacjami.
Wyłączanie optymalizacji zmiennoprzecinkowych x87 to rozszerzenie zestawu instrukcji x86, używane głównie w niektórych starszych programach x86 do wykonywania arytmetyki zmiennoprzecinkowych, które mogą używać formatu zmiennoprzecinkowego o wyższej precyzji 80-bitowej, który nie jest wymagany dla większości oprogramowania sofware używającego x87. Wybranie tej opcji spowoduje użycie pełnej dokładności 80-bitowej zamiast 64-bitowego przybliżenia, co odbywa się kosztem wydajności.