http://goog-perftools.sourceforge.net/doc/tcmalloc。html 它陈述:“CMAlloc目前不会向系统返回任何内存。” 我认为这意味着如果我分配42 MB并免费IT系统不会得到它,但下次我分配47 MB它将窃取只有5 MB更多?我的问题加载了DLL或.so模块会发生什么。在程序退出之前,他们是否可以获得自己的内存块。我问,因为如果我想编写运行时间可更新的SW,我必须在不退出程序的情况下加载新的DLL。所以我的问题是:如果我使用-ltcmalloc,我不断加载和卸载分配和免费内存的dll会导致mem用法爆炸?我认为这是一个愚蠢的问题,但我不知道每个DLL是否使用它自己的内存分配文件,或者如果mem分配是每个进程级别的。

有帮助吗?

解决方案

内存属于一个过程,而不是DLL。因此,记忆通常会被保持在进程结束之前。这是大多数Malloc实现的一个共同特征,而不仅仅是你询问的那个。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top