mémoire disponible - C - Programmation
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.
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.
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 )
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.
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.
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%. |
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.
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.