c - "TCMalloc currently does not return any memory to the system. "是什么意思?

标签 c tcmalloc

http://goog-perftools.sourceforge.net/doc/tcmalloc.html 声明:“CMalloc 当前不向系统返回任何内存。” 我认为这意味着如果我分配 42 MB 并释放它,系统将不会取回它,但下次我分配 47 MB​​ 它只会再窃取 5 MB?我的问题是加载的 dll 或 .so 模块会发生什么。他们是否获得了自己的内存块,直到程序退出才释放。我问是因为如果我想编写运行时可更新的软件,我必须在不退出程序的情况下加载新的 dll。所以我的问题是:如果我使用 -ltcmalloc 并且我不断加载和卸载分配和释放内存的 dll 是否会导致内存使用量激增?我认为这是一个愚蠢的问题,但我不知道每个 dll 是否使用自己的内存分配内容,或者内存分配是否在每个进程级别上。

最佳答案

内存属于进程,不属于DLL。所以内存通常会一直保留到进程结束。这是大多数 malloc 实现的共同特征,而不仅仅是您所询问的那个。

关于c - "TCMalloc currently does not return any memory to the system. "是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5975644/

相关文章:

c - long int 的大小差异

c - 使用裸机覆盆子pi调用printf到uart时,应用程序挂起

c++ - 编写高效的回溯函数

c++ - Eclipse C++ 包含错误 : no such file or directory

c - 我希望让我的处理程序函数在提示您做出选择后导致程序停止执行,如下面的代码所示

c++ - tcmalloc:静态编译时如何覆盖我的 malloc 调用?

c++ - 有没有人能够在使用共享 DLL 的 Windows 64 位应用程序上集成 tcmalloc?

glibc - tcmalloc 和 glibc 暴露的符号冲突

python - linux 上的 python cherrypy 应用程序未释放内存

c - block 作用域链接 C 标准