Qu'est-ce que «TCMALLOC ne renvoie actuellement aucune mémoire au système. " moyenne?

StackOverflow https://stackoverflow.com/questions/5975644

  •  12-11-2019
  •  | 
  •  

Question

Au http://goog-perftools.sourceforge.net/doc/tcmalloc.htmlIl est indiqué: "CMALLOC ne renvoie actuellement aucune mémoire au système." Je suppose que cela signifie que si j'alloue 42 Mo et que le système informatique libre ne le récupérera pas, mais la prochaine fois que j'allouai 47 MB, cela ne volera que 5 Mo de plus? Ma question ce qui se passe avec les modules DLL ou .So chargés. Ont-ils leur propre morceau de mémoire qui n'est pas publié avant la sortie du programme. Je demande parce que si je veux écrire le temps d'exécution à jour SW, je dois charger de nouvelles DLL sans sortir du programme. Donc, ma question est: si j'utilise -ltcmalloc et que je charge constamment et déchargement des DLL qui alloue et la mémoire libre, cela entraînera-t-il l'explosion de l'utilisation des MEM? Je suppose que c'est une question stupide, mais je ne sais pas si chaque DLL utilise ses propres trucs d'allocation de mémoire ou si l'allocation MEM est au niveau du processus.

Était-ce utile?

La solution

La mémoire appartient à un processus, pas aux DLL. La mémoire sera donc normalement maintenue jusqu'à la fin du processus. Il s'agit d'une caractéristique commune de la plupart des implémentations Malloc, pas seulement de celle que vous demandez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top