在我的 C++ 项目中使用 tcmalloc

Using tcmalloc in my C++ project

我在 linux 中使用 -ltcmalloc_minimal 将我的 C++ 程序链接到 tcmalloc 并且我已经使用 apt-get install libgoogle-perftools-dev 安装了 ltcmalloc 库。

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

是的,您需要包含 headers,因为您需要函数声明。

关于你的第二个问题,我建议你阅读他们的documentation

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

为了结束这个问题,我只需要在编译过程中包含库,不需要包含任何头文件。