Partilhar via


Desempenho e consumo de memória no WOW64

O desempenho e o consumo de memória no WOW64 são determinados pelos seguintes fatores:

  • Hardware do processador. A emulação de instruções é realizada no chip. No processador x64, as instruções x86 são executadas nativamente pelo processador. Portanto, a velocidade de execução em WOW64 em x64 é semelhante à sua velocidade em Windows de 32 bits. No processador Intel Itanium e em qualquer processador ARM64, mais software está envolvido na emulação, e o desempenho sofre como resultado.
  • API thunk overhead. Essa sobrecarga é pequena em comparação com as chamadas do sistema para o kernel NT. As funções do kernel NT destinam-se a ser chamadas com pouca frequência.
  • Tamanho da memória virtual. No processador Intel Itanium, o WOW64 adiciona uma sobrecarga significativa se duas ou mais instâncias do mesmo aplicativo de 32 bits estiverem sendo executadas simultaneamente. Isso se deve às páginas nativas de 8 KB no Intel Itanium, o que complica a emulação das páginas nativas de 4 KB na arquitetura x86 (mais páginas são marcadas como graváveis; todas as páginas graváveis são privadas para o processo). Isso pode afetar negativamente a escalabilidade dos Serviços de Terminal em determinados processadores. Este não é o caso do processador x64.
  • Conjunto de trabalho. O WOW64 aumenta o tamanho do conjunto de trabalho do aplicativo.

O WOW64 permite que aplicativos de 32 bits aproveitem o kernel de 64 bits. Portanto, aplicativos de 32 bits podem usar um número maior de identificadores de kernel e identificadores de janela. No entanto, os aplicativos de 32 bits podem não ser capazes de criar tantos threads no WOW64 quanto podem ser executados nativamente em sistemas baseados em x86 porque o WOW64 aloca uma pilha adicional de 64 bits (geralmente 512 KB) para cada thread. Além disso, alguma quantidade de espaço de endereço é reservada para o próprio WOW64 e as estruturas de dados que ele usa. O montante reservado depende do processador; mais é reservado no Intel Itanium do que nos processadores x64 ou ARM64.

Se o aplicativo tiver o sinalizador IMAGE_FILE_LARGE_ADDRESS_AWARE definido no cabeçalho da imagem, cada aplicativo de 32 bits receberá 4 GB de espaço de endereço virtual no ambiente WOW64. Se o sinalizador IMAGE_FILE_LARGE_ADDRESS_AWARE não estiver definido, cada aplicativo de 32 bits receberá 2 GB de espaço de endereço virtual no ambiente WOW64.