Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Os computadores Windows em Arm dão suporte à execução de aplicativos x86 e x64 em emulação usando Prism. O Prism inclui muitas otimizações para garantir que a emulação seja rápida e com bom desempenho para uma boa experiência do usuário.
Por padrão, o Prism atinge o equilíbrio ideal entre otimizações de desempenho e compatibilidade de aplicativos. No caso incomum de um aplicativo ter problemas de compatibilidade em execução no Prism, o Windows fornece configurações opcionais de emulação que você pode usar para ajustar o comportamento e as otimizações que o Prism usa para o aplicativo. Alterar essas configurações pode potencialmente aumentar a compatibilidade de um aplicativo, geralmente ao custo do desempenho.
Aviso
Alterar as configurações de emulação pode fazer com que o aplicativo falhe inesperadamente ou não seja iniciado.
Abrir configurações de emulação
Você pode acessar as configurações de emulação clicando com o botão direito do mouse no executável de um aplicativo e selecionando Propriedades.
Quando você usa o Windows no Arm, a guia Compatibilidade inclui uma seção intitulada Windows on Arm. Selecione Alterar configurações de emulação para abrir uma janela de configurações de emulação do Arm.
Restaurando o comportamento anterior do emulador
O Windows on Arm continua a melhorar e evoluir ao longo do tempo. Se um aplicativo encontrar um problema, mas tiver trabalhado em uma versão anterior do Windows no Arm, substituir o comportamento do Prism para corresponder ao de uma versão anterior do Windows no Arm poderá resolver o problema.
Ocultar a funcionalidade de emulação x64
Quando você seleciona essa opção, os aplicativos x86 veem que o código x64 não pode ser executado neste dispositivo. Essa opção imita o suporte ao aplicativo do emulador como ele existia no Windows 10 no Arm.
Ocultar recursos de CPU emulados mais recentes
No Windows 11 24H2 e mais recente, o Prism dá suporte a recursos adicionais de CPU que as versões anteriores do Windows no Arm não dão suporte. Esses recursos incluem AVX e AVX2, bem como IMC, FMA, F16C e outras extensões relacionadas do conjunto de instruções x86.
Quando você seleciona essa opção para um aplicativo, o emulador retorna ao nível de suporte ao recurso de CPU que existia na versão anterior do Prism.
Para aplicativos x86 de 32 bits, essa opção é substituída por um para Mostrar recursos de CPU emulados mais recentes. Por padrão, o Prism não expõe os recursos de CPU mencionados anteriormente para aplicativos x86 de 32 bits. Quando você seleciona essa opção, um aplicativo x86 de 32 bits pode detectar e usar o conjunto de recursos de CPU atualizado.
Configurações de emulação
A janela de configurações de emulação do Arm fornece duas maneiras de modificar as configurações de emulação. Você pode selecionar um grupo predefinido de configurações de emulação ou selecionar a opção Usar configurações avançadas para habilitar a escolha e a escolha de configurações individuais.
Os quatro grupos predefinidos de configurações de emulação são:
- Padrão
- Seguro
- Rigoroso
- Muito estrito
Mover de "Padrão" para "Seguro", depois para "Estrito" e finalmente para "Muito estrito" ajusta configurações adicionais de emulação, trocando parte do desempenho por um potencial aumento na compatibilidade.
Se você selecionar Usar configurações avançadas, poderá alterar a forma como o aplicativo usa vários núcleos de CPU, selecionando entre a operação multi-núcleo rápida e estrita, muito rigorosa ou forçar a operação de núcleo único.
As configurações de vários núcleos mudam a forma como o Prism usa barreiras de memória para sincronizar acessos de memória entre núcleos em aplicativos durante a emulação. Rápido é o modo padrão, que é o equilíbrio ideal para a maioria dos aplicativos. As opções estritas e muito rigorosas aumentarão o número de barreiras, diminuindo a velocidade do aplicativo, mas reduzindo o risco de erros de aplicativo. A opção de núcleo único remove todas as barreiras, mas força todos os threads de aplicativo a serem executados em um único núcleo para evitar a necessidade de sincronização.
As configurações de emulação restantes são descritas nesta tabela.
| Configuração de emulação | Resultado |
|---|---|
| Desabilitar o cache do aplicativo | O sistema operacional armazena em cache blocos de código compilados para reduzir a sobrecarga de emulação em execuções subsequentes. Essa configuração requer que o emulador recompile todo o código do aplicativo em runtime. |
| Desabilitar o modo de execução híbrida (somente aplicativos x86) | Os binários CHPE (Hybrid Portable Executable) compilados são binários compatíveis com x86 que incluem código Arm64 nativo para melhorar o desempenho, mas podem não ser compatíveis com alguns aplicativos. Essa configuração desabilita o uso desses binários híbridos em favor de binários somente x86 puros. |
| Proteções adicionais de emulação leve | Essa configuração faz com que o Prism ignore a presença de metadados voláteis em um binário. |
| Estrito suporte a código de auto-modificação | Habilite essa configuração para garantir que qualquer código auto-modificador tenha suporte correto na emulação. Os cenários de código de auto-modificação mais comuns são cobertos pelo comportamento padrão do emulador. Selecionar essa opção reduz significativamente o desempenho de auto-modificação de código durante a execução. |
| Desabilitar a otimização de desempenho da página RWX | Essa configuração desabilita uma otimização que melhora o desempenho do código em páginas RWX (legíveis, graváveis e executáveis), mas pode ser incompatível com alguns aplicativos. |
| Desabilitar a otimização de ponto flutuante | x87 é uma extensão de conjunto de instruções x86, usada principalmente em alguns softwares x86 mais antigos para executar aritmética de ponto flutuante, que pode usar um formato de ponto flutuante de 80 bits de maior precisão que não é necessário para a maioria dos sofwares que usa x87. Selecionar essa opção fará com que o Prism use a precisão completa de 80 bits em vez de uma aproximação de 64 bits, ao custo do desempenho. |