mémoire disponible

mémoire disponible - C - Programmation

Marsh Posté le 22-07-2010 à 17:40:46    

Bonjour à tous,
 
j'aimerais savoir s'il existe un moyen en C/C++ de  
connaitre la mémoire restante disponible sur une machine.
 
En fait dans mon code je voudrais faire :
 
Si ( mémoire_dispo < X% )
alors en_libérer
sinon en_allouer
 
Ce qu'il me manque actuellement est le "mémoire_dispo".
 
Merci.

Reply

Marsh Posté le 22-07-2010 à 17:40:46   

Reply

Marsh Posté le 22-07-2010 à 17:43:16    

Libérer de la mémoire ne fait pas que ton processus occupe moins d'espace mémoire. Ton segment ne diminue pas de taille.
 
Cela libère simplement de l'espace au sein du processus, ce qui fait qu'une nouvelle allocation ne fait pas (ou moins) augmenter la taille du processus en mémoire.
 
Sinon pour ta question, en standard ça ne me dit rien.

Reply

Marsh Posté le 22-07-2010 à 19:09:20    

au sein d'un programme en C, j'ai comme l'impression que quand tu as la possibilité de libérer de la mémoire et que tu attends une condition critique pour le faire, c'est qu'il y a un souci


---------------
last.fm
Reply

Marsh Posté le 28-07-2010 à 14:37:47    

theshockwave a écrit :

au sein d'un programme en C, j'ai comme l'impression que quand tu as la possibilité de libérer de la mémoire et que tu attends une condition critique pour le faire, c'est qu'il y a un souci


 
 
Désolé de la réponse plus que tardive mais non, pas du tout :-)
Je travaille sur une IA donc plus j'alloue plus je suis content (meilleur je suis) .. jusqu'à un certain point.

Reply

Marsh Posté le 28-07-2010 à 16:03:07    

Travaille en 64 bits, tu auras alors quelques To à ta disposition (dans les limites disponibles de ton système :o )

Reply

Marsh Posté le 29-07-2010 à 15:52:21    

Je pense qu'il veut faire un truc à la Vista : son programme tourne en tache de fond et utilise toute la mémoire dispo par défaut, en laissant 10% de libre si jamais l'utilisateur a besoin d'ouvrir le bloc note. Si jamais le bloc note se lance, la mémoire libre passe à 5% => il baisse le nombre de neuronnes pour revenir à 10% de libres pour si jamais l'utilisateur veut lancer la caltos. Si la mémoire libre passe à 15%, il augmente le nombre de ses neuronnes pour aller plus vite et revenir à 10%.
 
Bon je dis ca, je sais pas comment ca marche une IA ni comment on alloue de la mémoire, mais si ca peut éclaircir.


---------------
Nous vous souhaitons de beaux rêves, c'est le cinéma gratuit.
Reply

Marsh Posté le 30-07-2010 à 00:45:23    

Le problème, c'est que tu n'as pas de garantie sur la mise en mémoire virtuelle de ce que tu alloues ou a alloué. Même si tu arrives à déterminer qu'il te reste 15% de mémoire disponible, rien ne te garantit qu'en allouant une portion de ces 15%, tout sera en mémoire physique.


---------------
last.fm
Reply

Marsh Posté le 30-07-2010 à 15:23:29    

Dagnir a écrit :

Je pense qu'il veut faire un truc à la Vista : son programme tourne en tache de fond et utilise toute la mémoire dispo par défaut, en laissant 10% de libre si jamais l'utilisateur a besoin d'ouvrir le bloc note. Si jamais le bloc note se lance, la mémoire libre passe à 5% => il baisse le nombre de neuronnes pour revenir à 10% de libres pour si jamais l'utilisateur veut lancer la caltos. Si la mémoire libre passe à 15%, il augmente le nombre de ses neuronnes pour aller plus vite et revenir à 10%.
 
Bon je dis ca, je sais pas comment ca marche une IA ni comment on alloue de la mémoire, mais si ca peut éclaircir.


 
Vista / Win7 ne fait qu'un précachage de fichiers, donc c'est toujours de la mémoire libre en soi.
Tout est fait naturellement par la combinaison gestionnaire mémoire/cache disque.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed