我将C++程序与linux中的-ltcmalloc_minimal
链接到tcmalloc,并且已经安装了ltcmalloc
的apt-get install libgoogle-perftools-dev
库。
我需要在项目源文件中添加任何包含文件以在项目中启用tcmalloc吗? tcmalloc是否替换了我的项目使用的所有库中的所有new/free/malloc?
最佳答案
除非您专门调用tcmalloc API-即tc_new
,tc_free
,否则您无需包含tcmalloc中的任何 header 。这是因为对include <malloc.h>
的调用已经包含了malloc和其他内存函数声明。它们的定义在tcmalloc库中被覆盖(或使用别名)。在TCMalloc中,标准API(new
,malloc
,realloc
,free
,delete
等)以及POSIX API(例如posix_memaligned
)都被别名(在GCC兼容平台中)或被覆盖(Windows,...)。您唯一需要添加的是静态链接库-ltcmalloc_minimal.a
或-ltcmalloc.a
及其路径。
关于c++ - 在我的C++项目中使用tcmalloc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46740170/