Condividi tramite


Prestazioni e consumo di memoria in WOW64

Le prestazioni e il consumo di memoria in WOW64 sono determinati dai fattori seguenti:

  • Hardware del processore. L'emulazione delle istruzioni viene eseguita sul chip. Nel processore x64 le istruzioni x86 vengono eseguite in modo nativo dal processore. Pertanto, la velocità di esecuzione in WOW64 su x64 è simile alla sua velocità in Windows a 32 bit. Nel processore Intel Itanium e nei processori ARM64, più software sono coinvolti nell'emulazione e le prestazioni soffrono di conseguenza.
  • Sovraccarico dell'API thunk. Questo sovraccarico è ridotto rispetto alle chiamate di sistema al kernel NT. Le funzioni del kernel NT devono essere chiamate raramente.
  • Dimensioni della memoria virtuale. Nel processore Intel Itanium WOW64 aggiunge un sovraccarico significativo se due o più istanze dello stesso applicazione a 32 bit vengono eseguite simultaneamente. Ciò è dovuto alle pagine native di 8 KB in Intel Itanium, che complica l'emulazione delle pagine native 4 KB nell'architettura x86 (altre pagine sono contrassegnate come scrivibili; tutte le pagine scrivibili sono private per il processo). Ciò può influire negativamente sulla scalabilità dei servizi terminal in determinati processori. Non è il caso del processore x64.
  • Set di lavoro. WOW64 aumenta le dimensioni del set di lavoro dell'applicazione.

WOW64 consente alle applicazioni a 32 bit di sfruttare il kernel a 64 bit. Pertanto, le applicazioni a 32 bit possono usare un numero maggiore di handle e handle di finestre del kernel. Tuttavia, le applicazioni a 32 bit potrebbero non essere in grado di creare quanti thread in WOW64 possono essere eseguite in modo nativo nei sistemi basati su x86 perché WOW64 alloca uno stack a 64 bit aggiuntivo (in genere 512 KB) per ogni thread. Inoltre, alcune quantità di spazio indirizzi sono riservate a WOW64 stesso e le strutture di dati usate. La quantità riservata dipende dal processore; più è riservato su Intel Itanium rispetto ai processori x64 o ARM64.

Se l'applicazione ha il flag IMAGE_FILE_LARGE_ADDRESS_AWARE impostato nell'intestazione dell'immagine, ogni applicazione a 32 bit riceve 4 GB di spazio indirizzi virtuale nell'ambiente WOW64. Se il flag di IMAGE_FILE_LARGE_ADDRESS_AWARE non è impostato, ogni applicazione a 32 bit riceve 2 GB di spazio indirizzi virtuale nell'ambiente WOW64.