Что «TCMALLOC в настоящее время не возвращает никакой памяти в систему." иметь в виду?

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

  •  12-11-2019
  •  | 
  •  

Вопрос

на http://goog-perftools.sourceforge.net/doc/tcmalloc.html . Указано: «CMalloc в настоящее время не возвращает никакой памяти в систему». Я предполагаю, что это означает, что если я выделите 42 МБ, а свободу ИТ-системы не получит его обратно, но в следующий раз я выделите 47 МБ, он будет украсть только 5 МБ больше?Мой вопрос Что происходит с загруженными модулями DLL или .so.Они получают свой собственный кусок памяти, который не выпускается до выходов программы.Я спрашиваю, потому что, если я хочу написать время WORT UPDATIMED SW, я должен загрузить новые DLL, не выходя из программы.Итак, мой вопрос: если я буду использовать -ltcmalloc, и я постоянно загружаю и разгружаю DLL, которые выделяют и бесплатная память, которая приведет к использованию MEM для взорвании?Я предполагаю, что это глупый вопрос, но я не знаю, использует ли каждая DLL, использует свои собственные распределение памяти или если выделение MEM включено на уровень процесса.

Это было полезно?

Решение

Память принадлежит к процессу, а не на DLL.Таким образом, память обычно удерживается до тех пор, пока процесс не заканчивается.Это распространенная особенность большинства реализаций Malloc, а не только тот, о которой вы спрашиваете.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top