Je ne vois pas ou est le problème avec les valeurs sus-mentionnées.
En 32 bits le processeur ne peut adresser que 2^32 adresses mémoires. Ce qui correspond à 4 Giga binaire d’adresses mémoires. Avec une granularité de 1 octet ça donne exactement 4 Gio de mémoire.
<insérez votre nom ici> a écrit :Mais d’où vient la différence entre les 4 Gio théoriques que et les « en gros » 2 Gio observés ?
Si vous convertissez la valeur de la mémoire virtuelle totale en valeur hexadécimale vous trouverez $7FFE0000. Pourquoi une telle valeur ? En fait il y a deux raisons. La première est que Windows se réserve la moitié supérieure de l’espace mémoire virtuel (les adresses dont le premier bit est à « 1 »). La seconde est que l'équivalent d'un bloc de 65536 adresses (oui 2^16) est dédié aux espaces réservés et aux différentes adresses des périphériques installés sur l'ordinateur.
Donc pour récapituler 2147352576 = $7FFE0000 = (2^32)/2-2^16 = $100000000 / 2 - $10000
<insérez votre nom ici> a écrit :Ok pour la mémoire virtuelle totale, mais qu'en est-il de la mémoire virtuelle libre ? Pourquoi une valeur aussi grande alors que j'ai pleins de programmes qui tournent sur l'ordinateur ?
En fait, en mode de compatibilité 32 bits, chaque processus à sa propre mémoire virtuelle isolée de celle des autres. Par conséquent, la mémoire virtuelle non libre correspond aux blocs de mémoire virtuelle non réservés par le programme PureBasic.