¿Qué significa "tcmalloc actualmente no devuelve ninguna memoria al sistema?" ¿significar?

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

  •  12-11-2019
  •  | 
  •  

Pregunta

en el http://goog-perftools.sourceforge.net/doc/tcmalloc.html Se afirma: "Calloc actualmente no devuelve ninguna memoria al sistema". Supongo que significa que si supongo 42 MB y el sistema gratuito de TI no lo recuperará, pero la próxima vez que asigne 47 MB, ¡robará solo 5 MB más?Mi pregunta lo que sucede con los módulos cargados de DLL o .SO.¿Obtienen su propio trozo de memoria que no se libera hasta que sale el programa?Pido porque si quiero escribir tiempo de ejecución actualizable SW Debe cargar nuevas DLL sin salir del programa.Entonces, mi pregunta es: si uso -ltcmalloc y estoy cargando constantemente y descargando DLLs que asignan y la memoria gratuita causará que el uso de MEM se explote?Supongo que es una pregunta estúpida, pero no sé si cada DLL utiliza sus propias cosas de asignación de memoria o si si la asignación MEM está de modo por nivel de proceso.

¿Fue útil?

Solución

La memoria pertenece a un proceso, no a DLLS.Por lo tanto, la memoria se mantendrá normalmente hasta que finalice el proceso.Esta es una característica común de la mayoría de las implementaciones de MALLOC, no solo a la que está preguntando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top