Utilitaire de résolution de problèmes de compatibilité des programmes sur Arm

Les PC avec Arm offrent une grande compatibilité des applications et vous permettent d’exécuter vos applications x86 win32 non modifiées existantes. Les applications Arm s’exécutent en mode natif sans émulation, tandis que les applications x86 et x64 s’exécutent sous émulation sur les appareils Arm.

Cependant, il arrive que l’émulation effectue des optimisations qui n’offrent pas la meilleure expérience à l’utilisateur. Vous pouvez utiliser l’utilitaire de résolution de problèmes de compatibilité des programmes pour activer les paramètres d’émulation pour votre application x86 ou x64, ce qui réduit les optimisations par défaut et augmente potentiellement la compatibilité.

Démarrez l’utilitaire de résolution de problèmes de compatibilité des programmes

Vous démarrez l’utilitaire de résolution de problèmes de compatibilité des programmes manuellement de la même manière que sur n’importe quel PC sous Windows : cliquez avec le bouton droit sur un fichier exécutable (.exe) et sélectionnez Résolution des erreurs de compatibilité. Vous avez alors la possibilité d’essayer les paramètres recommandés pour tester le programme en utilisant les paramètres de compatibilité recommandés ou de Résoudre les problèmes liés au programme pour choisir les paramètres de compatibilité en fonction des problèmes spécifiques que vous avez constatés.

Screenshot of the Troubleshoot compatibility options.

Si vous sélectionnez Résoudre les problèmes liés au programme, vous pouvez sélectionner :

  • Le programme fonctionnait dans les versions antérieures de Windows, mais maintenant il ne s’installe plus et ne fonctionne plus.
  • Le programme s’ouvre, mais ne s’affiche pas correctement
  • Le programme nécessite des autorisations supplémentaires
  • Je ne vois pas mon problème dans la liste

Screenshot of the What problems do you notice options.

Toutes les options activent les paramètres applicables et appliqués sur les PC de bureau sous Windows. En outre, la première, la secondes et la quatrième option appliquent les paramètres d’émulation Disable application cache et Disable hybrid execution mode. (Les descriptions des paramètres d’émulation figurent dans le tableau ci-dessous).

Activation/Désactivation des paramètres d’émulation

Avertissement

Si vous modifiez les paramètres d’émulation, votre application risque de planter inopinément ou de ne pas se lancer du tout.

Vous pouvez activer/désactiver les paramètres d’émulation en cliquant avec le bouton droit sur l’exécutable et en sélectionnant Propriétés.

Sur ARM, une section intitulée Windows 10 sur ARM ou Windows 11 sur ARM sera disponible sous l’onglet Compatibilité. Sélectionnez Modifier les paramètres d’émulation pour lancer une fenêtre Propriétés d’émulation.

Change emulation settings screenshot

Cette fenêtre Propriétés d’émulation propose deux façons de modifier les paramètres d’émulation. Vous pouvez sélectionner un groupe prédéfinis de paramètres d’émulation ou sélectionner l’option Utiliser les paramètres avancés pour activer le choix des paramètres individuels.

Les paramètres d’émulation suivants réduisent les optimisations de performance au profit de la qualité et peuvent être utilisés pour tester la compatibilité de votre application x86 ou x64 lorsqu’elle est exécutée sous Windows on Arm.

Change emulation settings screenshot2

Sélectionnez Utiliser les paramètres avancés pour choisir des paramètres individuels, comme décrit dans ce tableau.

Paramètre d’émulation Result
Désactiver le cache d’application Le système d’exploitation met en cache les blocs de code compilés pour réduire la surcharge d’émulation lors des exécutions suivantes. Ce paramètre nécessite que l’émulateur recompile tout le code d’application au moment de l’exécution.
Désactiver le mode d’exécution hybride Exécutable portable hybride compilé (CHPE), les fichiers binaires sont des fichiers binaires compatibles x86 qui contiennent du code Arm64 natif pour améliorer les performances, mais qui peuvent ne pas être compatibles avec certaines applications. Ce paramètre force l’utilisation de fichiers binaires x86 uniquement.
Protections d’émulation légères supplémentaires Mise à jour générique concernant des éléments tels que les métadonnées volatiles, qui peuvent avoir un impact sur les performances lors de l’exécution d’une application x86 ou x64 en émulation.
Prise en charge stricte du code auto-modifiant Activez cette option pour vous assurer que tout code auto-modifiant est correctement pris en charge dans l’émulation. Les scénarios de code auto-modifiant les plus courants sont couverts par le comportement par défaut de l’émulateur. L’activation de cette option réduit considérablement les performances du code auto-modifiant pendant l’exécution.
Désactiver l’optimisation des performances des pages RWX Cette optimisation améliore les performances du code sur des pages lisibles, accessibles en écriture et exécutables (RWX), mais peut être incompatible avec certaines applications.
Désactiver l’optimisation JIT (applications x64 uniquement) Cette option n’est plus utilisée et sera supprimée dans les futures versions de l’utilitaire de résolution des problèmes.
Désactiver l’optimisation à virgule flottante (applications x64 uniquement) Activer pour émuler la virgule flottante x87 avec une précision de 80 bits, mais au détriment des performances. x87 est un coprocesseur à virgule flottante utilisé dans certains anciens processeurs x86 pour effectuer une arithmétique à virgule flottante en utilisant un format à virgule flottante de 80 bits avec une précision plus élevée que le format 32 bits ou 64 bits.

Vous pouvez également modifier la manière dont l’application utilise plusieurs cœurs de processeur, en choisissant entre Rapide, Opération multicœur stricte, Très stricte ou Forcer l’opération à un cœur. Si vous constatez des problèmes de compatibilité, testez l’émulation de vos applications lors de l’exécution de Windows on Arm avec ces paramètres.

Multi-core settings screenshot

Ces derniers modifient le nombre de barrières de mémoire utilisées pour synchroniser les accès mémoire entre les cœurs des applications lors de l’émulation. Le mode Rapide est le mode par défaut, mais les options Strict et Très strict augmenteront le nombre de barrières. Cela ralentit l’application, mais réduit le risque d’erreurs. L’option Un cœur unique supprime toutes les barrières, mais force toutes les threads d’application à s’exécuter sur un seul cœur.

Si la modification d’un paramètre spécifique résout votre problème, envoyez un e-mail à woafeedback@microsoft.com avec des détails, afin que nous puissions incorporer vos commentaires.