Solucionador de problemas de compatibilidad de programas en ARM

Los equipos con tecnología de Arm proporcionan una gran compatibilidad con aplicaciones y permiten ejecutar las aplicaciones x86 win32 sin modificar. Las aplicaciones Arm se ejecutan de forma nativa sin emulación, mientras que las aplicaciones x86 y x64 se ejecutan bajo emulación en dispositivos Arm.

Sin embargo, a veces la emulación realiza optimizaciones que no crean la mejor experiencia de usuario. Puede usar la guía de resolución de problemas solucionador de compatibilidad de programas para activar la configuración de emulación de la aplicación x86 o x64, lo que reduce las optimizaciones predeterminadas y se amplia la compatibilidad.

Iniciar la guía de resolución de problemas de compatibilidad de programas en ARM

Inicie la guía de resolución de problemas de compatibilidad de programas manualmente de la misma manera en cualquier equipo de Windows: haga clic con el botón derecho en un archivo ejecutable (.exe) y seleccione Solucionar problemas de compatibilidad. Tras esto, tendrá la opción Probar la configuración recomendada para probar que se ejecute el programa mediante la configuración de compatibilidad recomendada o Solucionar problemas del programa para elegir la configuración de compatibilidad en función de problemas específicos que haya observado.

Screenshot of the Troubleshoot compatibility options.

Si selecciona Solucionar problemas del programa, tendrá la opción de seleccionar:

  • El programa funcionó en versiones anteriores de Windows, pero no se instala ni ejecuta ahora
  • Se abre el programa, pero no se muestra correctamente
  • El programa necesita permisos adicionales
  • No me aparece mi problema

Screenshot of the What problems do you notice options.

Todas las opciones activan la configuración aplicable y aplicada en equipos de escritorio de Windows. Además, las opciones primera, segunda y cuarta aplican los ajustes de emulación Disable application cache y Disable hybrid execution mode. (Consulte la tabla de configuración de emulación siguiente para ver las descripciones).

Cambiar la activación de la configuración de emulación

Advertencia

Cambiar la configuración de emulación puede hacer que la aplicación se bloquee inesperadamente o no se abra.

Para cambiar la configuración de emulación, haga clic con el botón derecho en el archivo ejecutable y seleccione Propiedades.

En ARM, hay una sección titulada Windows 10 en ARM o Windows 11 en ARM que estará disponible en la pestaña Compatibilidad. Seleccione Cambiar la configuración de emulación para abrir la ventana Propiedades de emulación.

Change emulation settings screenshot

Estas Propiedades de emulación ofrece dos maneras de modificar la configuración de emulación. Puede seleccionar un grupo predefinido de configuración de emulación o seleccionar la opción Usar configuración avanzada para permitir que se puedan elegir opciones específicas.

La siguiente configuración de emulación reduce las optimizaciones de rendimiento en favor de la calidad y se puede usar para probar la compatibilidad de la aplicación x86 o x64 cuando se ejecuta en Windows en ARM.

Change emulation settings screenshot2

Seleccione Usar configuración avanzada para elegir los ajustes uno por uno, tal como se describe en esta tabla.

Ajuste de emulación Resultado
Deshabilitación de la caché de aplicaciones El sistema operativo almacenará en caché los bloques de código compilados para reducir la sobrecarga de emulación en ejecuciones posteriores. Este ajuste necesita que el emulador vuelva a compilar todo el código de la aplicación en entorno de ejecución.
Deshabilitación del modo de ejecución híbrida El ejecutable portable híbrido compilado (Compiled Hybrid Portable Executable o CHPE), los archivos binarios son archivos binarios compatibles con x86 que incluyen código nativo de Arm64 para mejorar el rendimiento, pero es posible que no sean compatibles con algunas aplicaciones. Este ajuste fuerza el uso de archivos binarios de solo x86.
Protecciones de emulación ligera adicionales Una actualización comodín que influyen en cosas como metadatos volátiles que pueden afectar al rendimiento al ejecutar una aplicación x86 o x64 en emulación.
Compatibilidad estricta con el código de automodificación Habilite esta opción para asegurarse de que cualquier código de automodificación se admita correctamente en la emulación. Los casos de código de automodificación más comunes se aplican a través de las funciones predeterminadas del emulador. Al habilitar esta opción, se reduce significativamente el rendimiento del código de automodificación durante la ejecución.
Deshabilitar la optimización del rendimiento de la página RWX Esta optimización mejora el rendimiento del código en páginas legibles, grabables y ejecutables (RWX), pero puede ser incompatible con algunas aplicaciones.
Deshabilitar la optimización de JIT (solo aplicaciones x64) Ya no se usa y se quitará en próximas versiones de la guía de resolución de problemas.
Deshabilitar la optimización de punto flotante (solo aplicaciones x64) Active esto para emular el punto flotante x87 con una precisión total de 80 bits, pero con un coste de rendimiento. x87 es un coprocesador de punto flotante usado en algunos procesadores x86 más antiguos para realizar aritméticas de punto flotante mediante un formato de punto flotante de 80 bits con mayor precisión que el formato de 32 o 64 bits.

También puede cambiar la forma en que la aplicación usa diferentes núcleos de CPU, seleccionando entre las operaciones Fast (Rápido), Strict multi-core (Estricto con varios núcleos), Very strict (Muy estricto) o Force single-core (Forzar con un solo núcleo). Pruebe la emulación de las aplicaciones al ejecutar Windows en ARM con esta configuración si detecta problemas de compatibilidad.

Multi-core settings screenshot

Esta configuración cambia el número de barreras de memoria usadas para sincronizar el acceso a la memoria entre los núcleos de las aplicaciones durante la emulación. Fast (Rápido) es el modo predeterminado, pero las opciones Strict (Estricto) y el Very strict (Muy estricto) aumentarán el número de barreras. Esto ralentiza la aplicación, pero reduce el riesgo de errores de la aplicación. La opción de un solo núcleo elimina todas las barreras, pero obliga a que todos los subprocesos de la aplicación se ejecuten en un solo núcleo.

Si al cambiar una opción específica, se resuelve el problema, envíe un correo electrónico a woafeedback@microsoft.com con la información correspondiente para que podamos registrar sus comentarios.