Avez-vous besoin de plus de RAM pour exécuter des programmes 32 bits sous Windows 64 bits?

Avez-vous besoin de plus de RAM pour exécuter des programmes 32 bits sous Windows 64 bits? / Demandez aux experts

De nos jours, la plupart des ordinateurs sont livrés avec une version 64 bits de Windows et souvent avec une quantité minimale de RAM. Cela soulève la question de la performance de ces systèmes. Cela est particulièrement vrai lorsque les utilisateurs souhaitent utiliser leurs logiciels 32 bits hérités sur ces nouveaux ordinateurs..

Ce qui soulève une question intéressante. Avez-vous besoin de plus ou moins de RAM? Combien de RAM avez-vous vraiment besoin? De combien de RAM avez-vous vraiment besoin? La RAM est comme la mémoire à court terme. Plus vous effectuez plusieurs tâches à la fois, plus vous en avez besoin. Découvrez combien votre ordinateur a, comment en tirer le meilleur parti ou comment en tirer davantage. Lisez-en plus pour exécuter une application 32 bits sur une version 64 bits de Windows Qu'est-ce que l'informatique 64 bits? Qu'est-ce que l'informatique 64 bits? L'emballage d'un ordinateur ou de matériel informatique est rempli de termes techniques et de badges. L’un des plus importants est le 64 bits. Lire la suite ? Cette semaine, Bruce Epper découvre.

Un lecteur demande:

Est-il vrai que l'exécution d'applications 32 bits sur un système Windows 64 bits consomme 1,5 fois plus de mémoire par rapport à l'exécution de l'application 32 bits sous un système d'exploitation Windows 32 bits?

Réponse de Bruce:

Nous avons précédemment discuté des avantages et des inconvénients liés au maintien du tout en 64 bits et de certains des effets de “mélanger et assortir” Comment les performances Windows sont affectées par le matériel et les logiciels Comment les performances Windows sont affectées par le matériel et les logiciels En théorie, les logiciels 32 bits pourraient dépasser les performances de leurs homologues 64 bits, en fonction de la configuration matérielle. Cela semble compliqué? Nous sommes là pour vous aider et vous aider à tirer le meilleur parti de votre système. Lire la suite . Aujourd'hui, nous allons examiner comment les applications 32 bits s'exécutent sur les versions 64 bits de Windows..

Un système d'exploitation Windows 64 bits ne peut pas exécuter un programme Windows 32 bits sans une aide supplémentaire. Ils sont tout simplement trop différents: des pointeurs et types de données à la manière dont les appels système (comment les programmes utilisent les ressources du système d'exploitation sous-jacent). Vous avez besoin d'un moyen de les rendre compatibles.

Comprendre WoW64

Windows utilise le sous-système WoW64 (Windows32 sur Windows64) pour compenser les différences. Il fonctionne efficacement comme un mini-émulateur Windows 32 bits sur les systèmes x64 et un véritable émulateur sur les systèmes Itanium (IA64)..

Les systèmes IA64 nécessitent un émulateur complet en raison des différences entre les instructions du processeur et les tailles de page en mémoire (4 Ko en x86 et x64, 8 Ko en IA64). Comme les processeurs x64 ont toutes les instructions des processeurs x86 et utilisent la même taille de page de mémoire, il n’a pas besoin d’un émulateur complet..

Dans les deux cas, WoW64 fournit une interface entre le noyau Windows 64 bits et la version 32 bits de ntdll.dll (contenant la liste des fonctions de base du noyau Windows), en interceptant les appels du noyau et en les modifiant pour pouvoir les traiter. les fonctions natives 64 bits fournies par le noyau Windows.

Pour y parvenir, 3 fichiers DLL sont utilisés sur les systèmes x64 / IA64: wow64cpu.dll, wow64win.dll et wow64.dll. Leurs fonctions consistent à extraire les caractéristiques du processeur et à fournir des thunks (nous y reviendrons plus tard) dans win32k.sys qui fournit le “la fenêtre” fonctionnalité et ntoskrnl.exe contenant l'exécutif, le noyau, le gestionnaire de mémoire, le planificateur de processus (à ne pas confondre avec le planificateur de tâches accessible à partir du panneau de configuration) et d'autres éléments essentiels du système d'exploitation.

Un thunk est un sous-programme (considérez-les comme une série d'instructions exécutant une tâche unique) qui permet à un programme d'exécuter un sous-programme ou une fonction commune dans le système..

Dans ce cas, il extrait les arguments de la pile d'appels du programme 32 bits, les convertit en leurs équivalents 64 bits et effectue l'appel système 64 bits. Au retour de l'appel, il convertira les résultats 64 bits en 32 bits et les repoussera dans la pile d'appels du programme pour que l'appelant puisse les utiliser..

Toutes les discussions sont effectuées en mode utilisateur (avec des autorisations limitées) pour deux raisons. Premièrement, cela minimise les effets de bogues dans le code, ce qui pourrait entraîner une faille de sécurité, une corruption des données ou un blocage du système s’il était exécuté en mode noyau..

Deuxièmement, cela réduirait l'impact sur les performances s'il s'exécutait en mode noyau (le mode utilisé par les parties essentielles du système d'exploitation) en raison de la surcharge occasionnée lors du passage du mode utilisateur au mode noyau et inversement..

Pour revenir aux systèmes Itanium, il existe d’autres différences importantes à noter. Les systèmes IA64 utilisent deux fichiers supplémentaires. IA32exec.bin est l'émulateur logiciel x86 et Wowia32x.dll fournit l'interface entre WoW64 et l'émulateur logiciel..

Un processus 32 bits chargera ces fichiers ainsi que la version 64 bits de ntdll.dll. Il s'agit des seuls fichiers binaires 64 bits pouvant être chargés dans un processus 32 bits avant Windows 7. Windows 7 et versions ultérieures disposent également d'une autre DLL, apisetschema.dll, qui sera chargée dans tous les processus..

Lorsqu'un processus 32 bits est démarré, il charge Wow64.dll qui, à son tour, charge la version 32 bits de ntdll.dll et toutes les DLL 32 bits nécessaires à partir de. % systemroot% \ SysWOW64. La plupart de ces fichiers sont identiques aux fichiers binaires d’un système 32 bits, bien que certains aient été réécrits pour se comporter différemment sous WOW64..

En regardant la liste des DLL chargées, nous pouvons voir qu'il y a 9 DLL chargées dans le processus sous Win64 qui ne sont pas là pour le système Win32..

Maintenant, vous pourriez être tenté de regarder la taille des fichiers, de les additionner et de les utiliser comme base de la quantité de mémoire supplémentaire utilisée, mais vous obtiendriez des résultats inexacts. De par leur nature, ces fichiers sont conçus pour être des composants partagés. Par conséquent, le premier fichier nécessitant une DLL le charge en mémoire..

Les programmes suivants qui nécessitent la même DLL ne chargent pas le composant entier en mémoire. Ils obtiennent un pointeur sur le composant déjà chargé et allouent de la mémoire vive aux éléments supplémentaires chargés dans le processus..

Notre configuration de test

Afin de voir ce qui se passe, j'ai configuré deux machines virtuelles exécutant Windows 7 Ultimate avec 2 Go de RAM allouées à chacune. L'un d'eux est la version 32 bits et l'autre est 64 bits. Les deux ont suivi exactement le même processus d'installation et de correction.

Une fois les deux systèmes corrigés, j'ai désactivé le fichier d'échange sur les deux systèmes pour obtenir une meilleure image de l'utilisation de la mémoire en veillant à ce que la mémoire RAM ne puisse pas être déplacée vers le disque. Une fois cette opération terminée, LibreOffice 5.0.3.2 était installé..

Une copie de Sysinternals Process Explorer Process Explorer - Remplacement le plus puissant du gestionnaire de tâches [Windows] Process Explorer - Remplacement le plus puissant du gestionnaire de tâches [Windows] Soyons honnêtes, le gestionnaire de tâches de Windows n’est pas très performant pour comprendre et gérer les processus en cours. sur ton ordinateur. Même sous Windows 8, où il a beaucoup évolué, le gestionnaire de tâches ne peut pas s'approcher… Read More a également été placé sur les deux ordinateurs. C'est l'outil que j'ai utilisé pour recueillir des informations sur l'utilisation de la mémoire. La configuration par défaut de la colonne a été modifiée pour que je puisse examiner l'utilisation du jeu de travail et de WS Private.

Ces numéros de groupe de travail reflètent la quantité de RAM utilisée par les programmes. Cela a compliqué encore un peu la tâche en reflétant la quantité de mémoire utilisée par les bibliothèques partagées, même si elles étaient déjà chargées par un autre processus. Pour cette raison, si vous ajoutez la colonne entière, il est possible de se retrouver avec un total supérieure à la RAM installée. L'ensemble de travail est toujours le meilleur indicateur de la quantité de mémoire requise pour un processus..

Les processus que nous examinons ne sont pas isolés non plus. Les différents programmes LibreOffice lancent un autre processus, soffice.exe, qui exécutera un autre processus, soffice.bin. Nous devons examiner les totaux des trois processus pour voir l'utilisation efficace de la mémoire de chaque programme..

Pour le test initial, j'ai simplement ouvert Writer, Calc et Impress individuellement pour connaître la quantité de mémoire utilisée sans chargement de données et exporté à partir de Process Explorer. Avec Calc et Impress, j'avais ouvert un fichier .xls de 3,7 Mo et un fichier .pptx de 3,9 Mo et enregistré la nouvelle utilisation de la mémoire. Les résultats peuvent être vus dans le tableau ci-dessous. Toutes les données sont en ko.

La grande surprise est survenue avec Impress. Sans document, il utilisait 4,1% de RAM supplémentaire sur le système 64 bits et 9,9% Moins avec le document chargé. J'ai découvert quelques autres exposés et obtenu des résultats similaires avec chacun d'eux. Le système 64 bits a fini par utiliser moins de RAM que le système 32 bits.

Les versions 64 bits de Windows nécessitent-elles donc plus de RAM que leurs versions 32 bits lors de l’exécution d’applications 32 bits? En général oui.

Mais avez-vous besoin de mettre à niveau votre RAM? Probablement pas. La différence vraiment n'est-ce pas énorme? Ce n'est certainement pas 1,5 fois différent.

En savoir plus sur: 64-bit, mémoire d'ordinateur, Windows.