Compartir a través de


Solucionador de problemas de compatibilidad de programas en Arm

Los equipos con tecnología de Arm proporcionan una gran compatibilidad de aplicaciones y permiten ejecutar las aplicaciones x86 win32 sin modificar existentes. 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 dan lugar a la mejor experiencia del usuario. Puede usar el solucionador de problemas de compatibilidad del programa para alternar la configuración de emulación de la aplicación x86 o x64, lo que reduce las optimizaciones predeterminadas y aumenta la compatibilidad.

Iniciar el solucionador de problemas de compatibilidad del programa

Inicie el solucionador de problemas de compatibilidad del programa manualmente de la misma forma en cualquier equipo Windows: haga clic con el botón derecho en un archivo ejecutable (.exe) y seleccione Solución de problemas de compatibilidad. A continuación, tendrá la opción de probar la configuración recomendada para probar la ejecución del 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.

Captura de pantalla de las opciones de solución de problemas de compatibilidad.

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

  • El programa funcionó en versiones anteriores de Windows, pero no se instalará ni ejecutará ahora.
  • Se abre el programa, pero no se muestra correctamente.
  • El programa requiere permisos adicionales
  • No veo mi problema en la lista

Captura de pantalla de las opciones ¿Qué problemas observa?

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

Alternar la configuración de emulación

Advertencia

Cambiar la configuración de emulación puede provocar que la aplicación se bloquee inesperadamente o no se inicie en absoluto.

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

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

Captura de pantalla de cambio de la configuración de emulación

Esta ventana Propiedades de emulación proporciona 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 habilitar la elección de opciones individuales.

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

captura de pantalla de Cambiar la configuración de emulación2

Seleccione Usar configuración avanzada para elegir la configuración individual, como se describe en esta tabla.

Configuración 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. Esta configuración requiere que el emulador vuelva a compilar todo el código de la aplicación en tiempo de ejecución.
Deshabilitación del modo de ejecución híbrida El ejecutable portable híbrido compilado (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. Esta configuración fuerza el uso de archivos binarios solo x86.
Protecciones de emulación ligeras adicionales Una actualización global que afecta a aspectos como los metadatos volátiles, los cuales pueden influir en el rendimiento al ejecutar una aplicación x86 o x64 en emulación.
Compatibilidad estricta con el código auto-modificable Active esta opción para asegurarse de que cualquier código automodificable sea admitido correctamente en la emulación. Los escenarios más comunes de código que se automodifica están cubiertos con el comportamiento por defecto del emulador. Habilitar esta opción reduce significativamente el rendimiento del código que se automodifica durante la ejecución.
Desactivar 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 JIT (solo aplicaciones x64) Ya no se usa y se quitará en versiones futuras del solucionador de problemas.
Deshabilitar la optimización de punto flotante (solo aplicaciones x64) Compruebe que emule el punto flotante x87 con una precisión de 80 bits completa, pero con un costo 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 cómo la aplicación usa varios núcleos de CPU, seleccionando entre operación rápida, estricta de varios núcleos, muy estricta o Forzar operación de un solo núcleo. Pruebe la emulación de aplicaciones al ejecutar Windows en Arm con esta configuración si observa problemas de compatibilidad.

Configuración de varios núcleos captura de pantalla

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 es el modo predeterminado, pero las opciones de estricto y 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 cambiar una configuración específica resuelve el problema, envíe un correo electrónico woafeedback@microsoft.com con detalles para que podamos incorporar sus comentarios.