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

Cri*_*ins 5 c++ tcmalloc

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

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

Dan*_*per 2

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