Freigeben über


Problembehandlung für die Programmkompatibilität auf Arm

Arm-PCs bieten eine hervorragende Anwendungskompatibilität und ermöglichen es Ihnen, Ihre vorhandenen unveränderten x86 win32-Anwendungen auszuführen. Arm-Apps werden nativ ohne Emulation ausgeführt, während x86- und x64-Apps auf Arm-Geräten per Emulation ausgeführt werden.

Manchmal führt die Emulation jedoch Optimierungen durch, die nicht zu einer optimalen Benutzererfahrung führen. Sie können die Problembehandlung für die Programmkompatibilität verwenden, um die Emulationseinstellungen für Ihre x86- oder x64-App umzuschalten, die Standardoptimierungen zu reduzieren und die Kompatibilität möglicherweise zu verbessern.

Starten des Program Compatibility Troubleshooters

Sie starten die Problembehandlung für die Programmkompatibilität manuell auf die gleiche Weise wie auf jedem Windows-PC: Klicken Sie mit der rechten Maustaste auf eine ausführbare Datei (EXE), und wählen Sie Kompatibilität überprüfen aus. Sie haben dann die Möglichkeit, die empfohlenen Einstellungen auszuprobieren, um das Programm mit den empfohlenen Kompatibilitätseinstellungen auszuführen, oder eine Problembehandlung durchzuführen, um die Kompatibilitätseinstellungen auf der Grundlage bestimmter Probleme auszuwählen, die Sie festgestellt haben.

Screenshot der Problembehandlungsoptionen.

Wenn Sie Programmbehandlung auswählen, können Sie eine der folgenden Optionen auswählen:

  • Das Programm hat in früheren Versionen von Windows funktioniert, lässt sich aber jetzt nicht mehr installieren oder ausführen
  • Das Programm öffnet sich, wird aber nicht korrekt angezeigt
  • Das Programm benötigt zusätzliche Berechtigungen
  • Mein Problem ist nicht aufgeführt

Screenshot der Optionen für

Alle Optionen aktivieren die Einstellungen, die auf Windows-Desktop-PCs anwendbar sind und angewendet werden. Darüber hinaus wenden die erste, zweite und vierte Option die Disable application cache- und Disable hybrid execution mode-Emulationseinstellungen an. (Beschreibungen finden Sie in der Tabelle der Emulationseinstellungen unten.)

Umschalten der Emulationseinstellungen

Warnung

Das Ändern der Emulationseinstellungen kann dazu führen, dass Ihre Anwendung unerwartet abstürzt oder gar nicht erst startet.

Sie können die Emulationseinstellungen umschalten, indem Sie mit der rechten Maustaste auf die ausführbare Datei klicken und Eigenschaften auswählen.

Auf ARM wird auf der Registerkarte Kompatibilität ein Abschnitt mit dem Titel Windows 10 on ARM oder Windows 11 on ARM verfügbar sein. Wählen Sie Emulationseinstellungen ändern aus, um das Fenster Emulationseigenschaften zu öffnen.

Screenshot der Änderung der Emulationseinstellungen

Dieses Fenster bietet zwei Möglichkeiten, die Emulationseinstellungen zu ändern. Sie können eine vordefinierte Gruppe von Emulationseinstellungen auswählen oder die Option Erweiterte Einstellungen verwenden auswählen, um die Auswahl individueller Einstellungen zu ermöglichen.

Die folgenden Emulationseinstellungen reduzieren die Leistungsoptimierungen zugunsten der Qualität und können verwendet werden, um die Kompatibilität Ihrer x86- oder x64-App zu testen, wenn diese in Windows on Arm ausgeführt wird.

Ändern der Emulationseinstellungen Screenshot2

Wählen Sie Erweiterte Einstellungen verwenden aus, um individuelle Einstellungen wie in dieser Tabelle beschrieben zu wählen.

Emulationseinstellung Ergebnis
Anwendungscache deaktivieren Das Betriebssystem wird kompilierte Code-Blöcke zwischenspeichern, um den Emulations-Overhead bei nachfolgenden Ausführungen zu reduzieren. Bei dieser Einstellung muss der Emulator den gesamten Code der App zur Laufzeit neu kompilieren.
Hybriden Ausführungsmodus deaktivieren Compiled Hybrid Portable Executable (CHPE), Binardateien sind x86-kompatible Binärdateien, die nativen Arm64-Code enthalten, um die Leistung zu verbessern, die aber möglicherweise nicht mit einigen Apps kompatibel sind. Diese Einstellung erzwingt die Verwendung von reinen x86-Binardateien.
Zusätzliche schlanke Emulationsschutzmechanismen Ein Catch-All-Update, das Dinge wie flüchtige Metadaten betrifft, die die Leistung beeinträchtigen können, wenn eine x86- oder x64-App in der Emulation ausgeführt wird.
Strikte Unterstützung für selbstmodifizierende Code Aktivieren Sie diese Option, um sicherzustellen, dass jeder selbstmodifizierende Code in der Emulation korrekt unterstützt wird. Die häufigsten Szenarien für selbstmodifizierenden Code werden durch das Standardverhalten des Emulators abgedeckt. Wenn Sie diese Option aktivieren, wird die Leistung von selbstmodifizierendem Code während der Ausführung erheblich reduziert.
RWX-Seitenleistungsoptimierung deaktivieren Diese Optimierung verbessert die Leistung von Code auf lesbaren, schreibbaren und ausführbaren (RWX) Seiten, kann aber mit einigen Apps nicht kompatibel sein.
JIT-Optimierung deaktivieren (nur x64-Apps) Diese Option wird nicht mehr verwendet und wird in zukünftigen Versionen der Problembehandlung entfernt.
Fließkomma-Optimierung deaktivieren (nur x64-Apps) Aktivieren Sie diese Option, um x87-Fließkommazahlen mit voller 80-Bit-Präzision zu emulieren, allerdings auf Kosten der Leistung. x87 ist ein Fließkomma-Coprozessor, der in einigen älteren x86-Prozessoren verwendet wird, um Fließkomma-Arithmetik mit einem 80-Bit-Fließkommaformat mit höherer Genauigkeit als dem 32-Bit- oder 64-Bit-Format durchzuführen.

Sie können außerdem ändern, wie die Anwendung mehrere CPU-Kerne nutzt, indem Sie zwischen "Schnell", "Strikter Multi-Core-Betrieb", "Sehr Strikt" oder "Erzwingen des Single-Core-Betriebs" wählen. Testen Sie die Emulation Ihrer Apps, wenn Sie Windows on Arm mit diesen Einstellungen ausführen, falls Sie Kompatibilitätsprobleme feststellen.

Screenshot der Multi-Core-Einstellungen

Diese Einstellungen ändern die Anzahl der Speicherbarrieren, die zur Synchronisierung von Speicherzugriffen zwischen Kernen in Apps während der Emulation verwendet werden. Schnell ist der Standardmodus, aber die Optionen Strikt und Sehr Strikt erhöhen die Anzahl der Barrieren. Dies verlangsamt die App, verringert aber das Risiko von App-Fehlern. Die Option Single-Core entfernt alle Barrieren, zwingt aber alle Threads der App dazu, auf einem einzigen Kern ausgeführt zu werden.

Wenn die Änderung einer bestimmten Einstellung Ihr Problem behebt, senden Sie bitte eine E-Mail an woafeedback@microsoft.com mit den Einzelheiten, damit wir Ihr Feedback berücksichtigen können.