Partager via


Consommation de performances et de mémoire sous WOW64

La consommation de performances et de mémoire sous WOW64 est déterminée par les facteurs suivants :

  • Matériel processeur. L’émulation d’instructions est effectuée sur la puce. Sur le processeur x64, les instructions x86 sont exécutées en mode natif par le processeur. Par conséquent, la vitesse d’exécution sous WOW64 sur x64 est similaire à sa vitesse sous Windows 32 bits. Sur le processeur Intel Itanium et tous les processeurs ARM64, d’autres logiciels sont impliqués dans l’émulation et les performances souffrent par conséquent.
  • Surcharge de l’API thunk. Cette surcharge est petite par rapport aux appels système au noyau NT. Les fonctions de noyau NT sont destinées à être appelées rarement.
  • Taille de la mémoire virtuelle. Sur le processeur Intel Itanium, WOW64 ajoute une surcharge significative si deux instances ou plus de la même application 32 bits s’exécutent simultanément. Cela est dû aux pages natives de 8 Ko sur Intel Itanium, ce qui complique l’émulation des pages natives de 4 Ko sur l’architecture x86 (d’autres pages sont marquées comme accessibles en écriture ; toutes les pages accessibles en écriture sont privées dans le processus). Cela peut affecter l’extensibilité des services Terminal Sur certains processeurs. Ce n’est pas le cas pour le processeur x64.
  • Ensemble de travail. WOW64 augmente la taille du jeu de travail de l’application.

WOW64 permet aux applications 32 bits de tirer parti du noyau 64 bits. Par conséquent, les applications 32 bits peuvent utiliser un plus grand nombre de handles de noyau et de handles de fenêtre. Toutefois, les applications 32 bits peuvent ne pas être en mesure de créer autant de threads sous WOW64 que possible lors de l’exécution en mode natif sur des systèmes x86, car WOW64 alloue une pile 64 bits supplémentaire (généralement 512 Ko) pour chaque thread. En outre, une certaine quantité d’espace d’adressage est réservée pour WOW64 lui-même et les structures de données qu’il utilise. Le montant réservé dépend du processeur ; plus est réservé sur Intel Itanium que sur les processeurs x64 ou ARM64.

Si l’application a l’indicateur IMAGE_FILE_LARGE_ADDRESS_AWARE défini dans l’en-tête d’image, chaque application 32 bits reçoit 4 Go d’espace d’adressage virtuel dans l’environnement WOW64. Si l’indicateur IMAGE_FILE_LARGE_ADDRESS_AWARE n’est pas défini, chaque application 32 bits reçoit 2 Go d’espace d’adressage virtuel dans l’environnement WOW64.