Avez-vous besoin de plus de ram pour exécuter des programmes 32 bits sur windows 64 bits?

La plupart des ordinateurs navire aujourd`hui avec une version 64 bits de Windows, et souvent une quantité minimale de RAM. Cela remet en question comment ces systèmes fonctionnent. Cela est particulièrement vrai lorsque les utilisateurs veulent gérer leur héritage logiciel 32 bits sur ces nouveaux ordinateurs.

Ce qui soulève une question intéressante. Le faites vous besoin de plus ou moins de RAM d`exécuter une application 32 bits sur un 64 bits version de Windows? Cette semaine, Bruce Epper découvre.Combien de RAM Avez-vous vraiment besoin?Combien de RAM Avez-vous vraiment besoin?RAM est comme la mémoire à court terme. Plus vous effectuer plusieurs tâches, plus vous avez besoin. Découvrez combien votre ordinateur, comment tirer le meilleur parti de celui-ci, ou comment obtenir plus.Lire la suite

Un lecteur demande:

Est-il vrai que l`exécution d`applications 32 bits sur un système Windows 64 bits consume 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 déjà discuté des avantages et des inconvénients de tout en gardant 64 bits à travers le conseil d`administration et certains des effets de « mélange et appariement ». Aujourd`hui, nous allons examiner comment les applications 32 bits exécutent les versions 64 bits de Windows.Comment performances Windows est affectée par matériel & LogicielComment performances Windows est affectée par matériel & LogicielEn théorie, le logiciel 32 bits pourrait surperformer son homologue 64 bits, en fonction de la configuration matérielle. Cela vous paraît compliqué? Nous sommes ici pour donner un sens et vous aider à obtenir les meilleures performances de votre système.Lire la suite

Un système d`exploitation Windows 64 bits ne peut pas exécuter un programme Windows 32 bits sans aide supplémentaire. Ils sont tout simplement trop différents: de pointeurs et types de données, à la façon 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 émulateur à part entière sur les systèmes Itanium (IA64).

les systèmes IA64 ont besoin d`un émulateur complet en raison des différences dans les instructions du processeur et la taille des pages de mémoire (4 Ko x86 et x64, 8K dans IA64). Étant donné que les processeurs x64 ont toutes les instructions des processeurs x86 et utilise la même taille de page de mémoire, il n`a pas le 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 (celui-ci contient une liste des fonctions du noyau de base Windows), l`interception des appels du noyau et les modifier afin qu`ils puissent être traités par les fonctions natives 64 bits fournies par le noyau Windows.

Il y a 3 fichiers DLL utilisés sur les systèmes x64 / IA64 pour y parvenir: wow64cpu.dll, Wow64win.dll et wow64.dll. Leurs fonctions sont abstraites les caractéristiques du processeur et de fournir thunks (nous allons les amener à plus tard) Dans win32k.sys qui fournit la fonctionnalité « fenêtre » et ntoskrnl.exe qui contient l`exécutif, le noyau, le gestionnaire de mémoire, le programmateur de processus (à ne pas confondre avec le planificateur de tâches accessible à partir du panneau de commande) et d`autres éléments de la base système opérateur.

chargés-dll

Un thunk est un sous-programme (pensez à ceux-ci comme une série d`instructions qui effectuent une seule tâche) qui permet à un programme d`exécuter un sous-programme commun ou fonction dans le système.

Dans ce cas, il extrait les arguments de la pile d`appel du programme 32 bits, les convertit à leurs homologues 64 bits, et fait l`appel système 64 bits. Au retour de l`appel, il convertira le retour à 32 bits et les repousser sur la pile d`appel du programme Résultats 64 bits pour l`appelant à utiliser.

Tout thunking se fait en mode utilisateur (qui dispose d`autorisations limitées) pour deux raisons. Tout d`abord, il minimise les effets des bugs dans le code qui pourrait entraîner un trou de sécurité, la corruption de données ou un plantage du système en cas d`exécution en mode noyau.

En second lieu, elle réduit l`impact sur les performances qu`elle aurait si en cours d`exécution en mode noyau (le mode utilisé par les parties essentielles du système d`exploitation) en raison de la surcharge en cause lors du passage entre le mode utilisateur et le mode noyau et le dos.

Pour en revenir aux systèmes Itanium, il y a 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 de logiciel.

Un processus 32 bits chargera ces fichiers, ainsi que la version 64 bits de ntdll.dll. Ce sont les seuls binaires 64 bits qui peuvent être chargés dans un processus 32 bits avant Windows 7. Windows 7 et plus tard aussi une autre DLL, apisetschema.dll, qui sera chargé dans tous les processus.

Procédé explorateur

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

En regardant la liste des DLL chargées, nous pouvons voir 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, les ajouter et l`utiliser comme base pour la quantité de mémoire supplémentaire est utilisé, mais vous finiriez avec des résultats inexacts. Ces fichiers, par leur nature, sont conçus pour être des composants partagés et par conséquent, le premier fichier d`exiger une DLL se charge en mémoire.

les programmes suivants qui nécessitent la même DLL ne chargent pas la totalité du composant dans la mémoire. Ils obtiennent un pointeur sur le composant déjà chargé, et allouer RAM pour les éléments supplémentaires qui sont chargés dans le processus.

Notre configuration de test

Pour voir ce qui se passe, je l`ai mis en place deux machines virtuelles fonctionnant sous Windows 7 Ultimate avec 2 Go de RAM allouée à chacun. L`un d`eux est la version 32 bits et l`autre est de 64 bits. Les deux sont passés par le même processus d`installation et patcher exacte.

Après que les deux systèmes ont été patchés, j`ai désactivé le fichier d`échange sur les deux pour obtenir une meilleure idée de l`utilisation de la mémoire RAM en assurant ne pouvait pas être paginée sur le disque. Une fois cela 5.0.3.2 complet LibreOffice a été installé.

lo-calc

Une copie de Sysinternals Process Explorer a également été placé sur les deux machines. Ceci est l`outil que j`ai utilisé pour recueillir des informations sur l`utilisation de la mémoire. La configuration de la colonne par défaut a été changé pour que je puisse regarder le jeu de travail et WS utilisation privée.Process Explorer - le plus puissant Gestionnaire des tâches de remplacement [Windows]Process Explorer - le plus puissant Gestionnaire des tâches de remplacement [Windows]Soyons honnêtes, le Gestionnaire des tâches Windows est pas terrible pour comprendre et gérer les processus en cours d`exécution sur votre ordinateur. Même sur Windows 8, où il est beaucoup améliorée, le gestionnaire de tâches ne peut pas se rapprocher de la ...Lire la suite

Ces chiffres reflètent ensemble travail la quantité de RAM utilisée par les programmes. Ce qu`il complique un peu plus loin en réfléchissant la quantité de mémoire utilisée par les bibliothèques partagées même si elles ont déjà été chargés par un autre processus. À cause de cela, si vous ajoutez la colonne entière, il est possible de se retrouver avec un total supérieur RAM. Le jeu de travail est toujours le meilleur indicateur exactement la quantité de mémoire est nécessaire pour un processus.

Les processus que nous examinons ne sont pas seuls debout non plus. Les différents programmes de LibreOffice lancer 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 de la mémoire effective de chaque programme.

Pour le test initial, je simplement ouvert de Writer, Calc et Impress individuellement pour regarder la quantité de mémoire qu`ils consomment sans données chargées et exporté les données de Process Explorer. Avec Calc et Impress, j`avais ouvert un fichier .xls 3,7 Mo et le fichier de 3,9 Mo, respectivement, et a 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.

utilisation de la mémoire

La grande surprise a eu lieu avec Impress. Sans un document qu`il utilisait 4,1% de plus de RAM sur le système 64 bits et 9,9% Moins avec le document chargé. Je déterré quelques autres présentations et a eu des résultats similaires avec tous. Le système 64-bit a fini en utilisant moins de mémoire que le système 32 bits.

Alors, faites les versions 64 bits de Windows nécessitent plus de RAM que leurs homologues 32 bits lors de l`exécution des applications 32 bits? En général, oui.

Mais vous devez mettre à jour votre RAM? Probablement pas. La différence vraiment est-ce pas massif. Il est certainement pas 1,5 fois différent.

Articles connexes