Cosa fa "attualmente TcMalloc non restituisce memoria al sistema." significare?

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

  •  12-11-2019
  •  | 
  •  

Domanda

Al http://goog-perftools.sourceforge.net/doc/tcmalloc.HTML . È indicato: "CMALLOC attualmente non restituisce memoria al sistema". Presumo che ciò significhi che se allocco 42 MB e il sistema IT gratuito non lo rimetterà indietro, ma la prossima volta assegnerò 47 MB, ruberà solo 5 MB di più?La mia domanda Cosa succede con DLL caricato o moduli .so.Ottengono il proprio pezzo di memoria che non viene rilasciato fino a quando il programma usciva.Chiedo perché se voglio scrivere tempo di esecuzione aggiornabile SW Devo caricare nuove DLL senza uscire dal programma.Quindi la mia domanda è: se utilizzo -Ltcmalloloc e sto costantemente caricando e scaricando le DLL che assegnano e la memoria libera che causerà l'esplesione dell'uso dell'MM?Presumo che sia una domanda stupida, ma non so se ogni DLL utilizza roba di allocazione della memoria o se se l'allocazione dell'MM è attiva per livello di processo.

È stato utile?

Soluzione

La memoria appartiene a un processo, non alle DLL.Quindi la memoria sarà normalmente trattenuta fino al termine del processo.Questa è una caratteristica comune della maggior parte delle implementazioni di malloc, non solo quella che stai chiedendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top