-
Liberez le swap !
Bonjour,
J'ai une question au sujet de l'allocation mémoire. Je travail sur Ubuntu et compile divers programme en C parfois gourmant en mémoire. J'utilise toutes les procédures pour libérer la mémoire et passe mon programme de temps en temps sur valgrind pour m'assurer que tous les free sont bien fait etc etc...
Mais voilà Valgrind et lui aussi très gourmant en mémoire et inévitablement il finit par swapper. Ce qui est souvent inévitable. Toutefois j'ai tendance à surveiller l'état de la mémoire avec la commande "top".
Je constate ainsi que la mémoire "used" en swap ne se libère pas quand le valgrind prend fin mais que la mémoire vive se libère. Je voulais savoir s'il y a moyen de libérer cette mémoire en swap pour utiliser la mémoire vivi libre en échange et ainsi éviter de rédémarre ma machine après chaque débugage pour ne pas trop ralentir par la suite.
Merci de votre aide, j'espère avoir été assez clair.
-
Salut,
Tu ne peux pas liberer cette memoire, et de toute maniere c'est inutile ;)
En simplifiant:
Tu utilises un ou plusieurs programmes gourmands en memoire. Ces programmes sont actifs et ont besoin de memoire vive, donc l'OS deplace dans le swap des pages inactives d'autres process. Lorsque tes programmes actifs terminent, la memoire vive qu'ils utilisaient est liberee. Par contre, les process inactifs ont toujours leurs pages dans le swap. Et comme ces pages sont toujours inactives, l'OS n'a aucune raison de les en sortir, ca fait plus de place pour les prochains programmes que tu lanceras. Par contre, des qu'un de ces programmes demandera l'acces aux pages inactives celles-ci seront copiees en retour en memoire vive.
-
Donc si j'ai bien compris. Des que les processus qui mange du Swap seront à nouveau actif cette espace sera à nouveau remis dans la mémoire vive...
C'est bien fait quand même !
Merci pour ta réponse l'ami.