Что «TCMALLOC в настоящее время не возвращает никакой памяти в систему." иметь в виду?
Вопрос
на 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, а не только тот, о которой вы спрашиваете.