/ / Même après le nettoyage, la mémoire ne diminue pas - c ++, gestion de la mémoire

Même après le nettoyage, la mémoire ne réduit pas - c ++, la gestion de la mémoire

J'ai un service C ++ qui reçoit certains événements, ceux-ci sont écrits dans un fichier après avoir été traités, jusqu'à ce que les messages soient en mémoire, j'ai donc une grande structure de données stockant les événements.

Une fois l’écriture terminée, je fais un nettoyage de tous lesstructures stockant la mémoire, mais même après cela, la mémoire ne descend pas. J'ai partagé tous les points de vue, alors finalement, ceux-ci devraient être nettoyés quelque temps, même si quelque chose me manque, mais même cela ne se produit pas.

J'ai exécuté valgrind sur le service, mais il ne montre aucune fuite de mémoire. Je voulais vérifier s'il existe un moyen de vérifier si la mémoire est occupée?

Réponses:

1 pour la réponse № 1

C’est normal. Libérer la mémoire est presque toujours une pure perte d’efficacité et les systèmes modernes l’évitent.

Si la mémoire n’est pas nécessaire pour autre chose,l'effort de le rendre gratuit est évidemment gaspillé. Si cela est nécessaire pour autre chose, il est toujours inutile, car le système d’exploitation doit simplement le réutiliser, annulant ainsi le travail effectué pour le rendre gratuit.

Les systèmes modernes transfèrent directement la mémoire d'une utilisation à une autre sans la libérer au milieu, à moins qu'ils n'aient pas le choix.