Requête mémoire disponible.

Informations sur la mémoire.

GlobalMemoryStatus

Voir version :

Pas de dépendances

Télécharger :

#include <windows.h>
#include <stdio.h>

int main ()
{
    MEMORYSTATUS stat;
    GlobalMemoryStatus (&stat);
    printf("Memoire physique totale : %u\n",stat.dwTotalPhys);
    printf("Memoire physique disponible : %u\n",stat.dwAvailPhys);
    printf("Memoire page totale : %u\n",stat.dwTotalPageFile);
    printf("Memoire page disponible : %u\n",stat.dwAvailPageFile);
    printf("Memoire virtual totale : %u\n",stat.dwTotalVirtual);
    printf("Memoire virtual disponible : %u\n",stat.dwAvailVirtual);
    printf("Pourcentage memoire physique utilise : %d\n",stat.dwMemoryLoad);
    return 0;
}




Commentaires


  Un tuto simple qui présente une façon de voir la mémoire disponible sur le PC.

  La fonction expliquée ici est GlobalMemoryStatus :

  http://msdn2.microsoft.com/en-us/library/aa366586.aspx

  Elle remplit une structure de type MEMORYSTATUS dont l'adresse est passée en parametres, puis remplit cella ci.

  http://msdn2.microsoft.com/en-us/library/aa366772.aspx
  Voici la structure, prete a etre consultée apres l'appel de la fonction :

typedef struct _MEMORYSTATUS 
{  

  DWORD dwLength;     // sizeof de cette struct.
  DWORD dwMemoryLoad;  
  SIZE_T dwTotalPhys;  
  SIZE_T dwAvailPhys;  
  SIZE_T dwTotalPageFile;  
  SIZE_T dwAvailPageFile;  
  SIZE_T dwTotalVirtual;  
  SIZE_T dwAvailVirtual;
} MEMORYSTATUS, 

 A noter que la mémoire physique est la mémoire que vous avez réellement dans votre machine, en octets.
 (note : 1 Ko = 1024 octets, 1 Mo = 1024 Ko, 1 Go = 1024, cela explique les nombres "non ronds" que vous verrez.
 1024 n'était pas choisi au hasard, il s'agit de 2^10 : et dans l'info, on affectionne les puissances de 2)

  La mémoire de page est la mémoire allouée par le processus en cours.
  La mémoire virtuelle est une mémoire qui n'existe pas, et qui, quand on veut y stocker des données, peut utiliser
  la mémoire physique ou le disque dur "fichier SWAP" [...] Je ne vais pas rentrer dans le détail.
  Disons en 1 mot que quand vous n'avez pas assez de mémoire, le systeme utilise le disque dur comme mémoire supplémentaire.
  Voila pourquoi quand la charge est trop élevée, le disque dur se met a gratter, et le systeme ralenti (l'acces au disque dur
  étant infiniment plus lent que l'acces en RAM)