我将C++程序与linux中的-ltcmalloc_minimal链接到tcmalloc,并且已经安装了ltcmallocapt-get install libgoogle-perftools-dev库。

我需要在项目源文件中添加任何包含文件以在项目中启用tcmalloc吗? tcmalloc是否替换了我的项目使用的所有库中的所有new/free/malloc?

最佳答案

除非您专门调用tcmalloc API-即tc_newtc_free,否则您无需包含tcmalloc中的任何 header 。这是因为对include <malloc.h>的调用已经包含了malloc和其他内存函数声明。它们的定义在tcmalloc库中被覆盖(或使用别名)。在TCMalloc中,标准API(newmallocreallocfreedelete等)以及POSIX API(例如posix_memaligned)都被别名(在GCC兼容平台中)或被覆盖(Windows,...)。您唯一需要添加的是静态链接库-ltcmalloc_minimal.a-ltcmalloc.a及其路径。

关于c++ - 在我的C++项目中使用tcmalloc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46740170/

10-11 18:18