Parce que la mémoire, d'une manière générale, n'est jamais « vidée ». Elle conserve toujours le dernier état qu'on lui a donné. Si on voulait vraiment retirer le fichier de la RAM (pour des raisons de confidentialité, par exemple). Il faudrait aller explicitement écrire des zéros dedans.
En bref, laisser le fichier en l'état en RAM est ce qui coûte le moins cher au système. Tant que cet espace n'est pas utilisé, autant garder une trace de ce qu'il y a dedans, ce sera toujours ça en moins à faire à la prochaine lecture du fichier.
Par contre, lorsque plus personne ne référence ce fichier et qu'on le supprime, il n'y a plus moyen pour le système de rouvrir un descripteur vers son contenu. Donc, pas la peine de garder trace de données caduques dans la table du cache. Le segment de mémoire repasse donc de « disponible » à « inutilisé ».
Si tu veux vider de force la table du cache, sur les noyaux Linux récents, c'est echo 1 > /proc/sys/vm/drop_cache mais ça ne sert à rien.
[^] # Re: cache ?
Posté par Obsidian . En réponse au message memoire pas libérée apres ecriture dans un fichier ?. Évalué à 3.
En bref, laisser le fichier en l'état en RAM est ce qui coûte le moins cher au système. Tant que cet espace n'est pas utilisé, autant garder une trace de ce qu'il y a dedans, ce sera toujours ça en moins à faire à la prochaine lecture du fichier.
Par contre, lorsque plus personne ne référence ce fichier et qu'on le supprime, il n'y a plus moyen pour le système de rouvrir un descripteur vers son contenu. Donc, pas la peine de garder trace de données caduques dans la table du cache. Le segment de mémoire repasse donc de « disponible » à « inutilisé ».
Si tu veux vider de force la table du cache, sur les noyaux Linux récents, c'est echo 1 > /proc/sys/vm/drop_cache mais ça ne sert à rien.