Utilisation de la mémoire d'application 32 bits sous Windows 7 64 bits

1

J'ai un début 2012 Macbook Pro avec et processeur Intel i7 et 16 Go de RAM fonctionnant sous Windows 7 Professionnel 64 bits via Bootcamp. Je travaille dans les systèmes d’information géographique (SIG) en tant que programmeur. La plupart des applications que j’exécute sont donc des applications 32 bits, mais ont tendance à utiliser beaucoup de ressources (par exemple, ArcGIS, SQL Server Express, Visual Studio, etc.).

J'ai remarqué que lorsque j'ai plusieurs instances de la même application 32 bits ou de différentes applications 32 bits et qu'elles travaillent toutes sur des tâches de traitement lourdes, je n'utilise toujours que 30% d'utilisation de la mémoire.

Je comprends que les applications 32 bits sont limitées à moins de 4 Go de RAM, mais j’imaginais qu’une instance pouvait utiliser ses propres 4 Go tandis qu’une autre pouvait utiliser un autre 4 Go pour tirer pleinement parti de toute la mémoire que j’avais installée.

Quelqu'un peut-il expliquer comment cela fonctionne et comment je peux faire en sorte que mes applications tirent parti de toute ma mémoire en exécutant plusieurs instances?

Brian
la source
1
Vous ne pourrez pas le forcer. Si Windows avait besoin d'utiliser la mémoire, ce serait le cas.
Ramhound
Parlez-vous de recoder les applications pour utiliser plus de RAM ou simplement curieux de savoir pourquoi elles n'utilisent pas toute la RAM disponible?
RockPaperLizard

Réponses:

2

Les applications, qu’elles soient 32 bits ou 64 bits (etc.), n’utiliseront que la quantité de mémoire dont elles ont besoin. Ni plus ni moins. S'il n'a pas besoin de 4 Go de RAM, il n'utilisera pas 4 Go de RAM.

Une idée fausse répandue est que les applications 64 bits utilisent deux fois plus de RAM que les applications 32 bits. Ce n'est pas vrai

Le "bit" désigné pour une application indique simplement la quantité d'espace d'adressage virtuel qu'elle peut accès . C’est différent de la quantité de bélier Besoins pour de bonnes performances.

Les applications ne fonctionneront pas mieux s'il y a un surplus de mémoire disponible. Une application qui utilise 32 Mo de RAM fonctionnera théoriquement de la même manière dans un système avec 1 Go de mémoire disponible ou avec un système avec 16 Go de mémoire disponible; indépendamment de la taille en bits.

Subaru Tashiro
la source
3
Une version 64 bits d'une application peut utiliser plus de mémoire qu'une version 32 bits d'elle-même, car les pointeurs sont deux fois plus gros. Que ce soit une quantité importante dépend de l'application. D'habitude ça ne l'est pas.
martineau
ah oui, c'est correct. Mais je ne savais pas trop comment expliquer les pointeurs à quelqu'un qui ne le savait peut-être pas. Alors au lieu de cela, j'ai inclus le mot "théoriquement". Si vous pouvez le faire simplement, vous pouvez modifier ma réponse pour inclure ce bit. Cela pourrait aider davantage les gens.
Subaru Tashiro
1
Que diriez-vous: un pointeur est une adresse mémoire et un pointeur 64 bits nécessite deux fois plus d'octets de mémoire pour être stocké qu'un pointeur 32 bits.
martineau
1
C'est vrai, mais ce n'est pas comme si chaque élément de données sur lequel un programme fonctionne est un pointeur. En fait, MS a décidé de manière délibérée que les INT et les LONG resteraient à 32 bits dans l'environnement 64 bits. Si un programmeur souhaite utiliser des entiers 64 bits, il existe des types de données spécifiques à demander, mais les INT et LONG que nous utilisons depuis la version 3.1 3.1 restent à 32 bits.
Jamie Hanrahan
Voici un excellent article sur les navigateurs Web 32 bits et 64 bits: ghacks.net/2016/01/03/… Comme vous pouvez le constater, les versions 64 bits de plusieurs navigateurs utilisent beaucoup plus de RAM que leurs versions 32 bits.
RockPaperLizard