我在 linux 中将我的 C++ 程序链接到tcmalloc,并且我已经使用.-ltcmalloc_minimal
ltcmalloc
apt-get install libgoogle-perftools-dev
我是否需要将任何包含文件添加到我的项目源文件中才能在我的项目中启用 tcmalloc?tcmalloc 是否替换了我的项目使用的所有库中的所有 new/free/malloc?
除非您专门调用 tcmalloc API - 即tc_new
,tc_free
您不需要包含来自 tcmalloc 的任何标头。这是因为 malloc 和其他内存函数声明已经包含在对include <malloc.h>
. 它们的定义在 tcmalloc 库中被覆盖(或别名)。在 TCMalloc 中,标准 API ( new
, malloc
, realloc
, free
, delete
, 等...) 以及 POSIX API (例如posix_memaligned
) 或者被别名化(在 GCC 兼容平台中)或者被覆盖(windows, ...)。您唯一需要添加的是静态链接库-ltcmalloc_minimal.a
或-ltcmalloc.a
路径的情况。
是的,您需要包含标题,因为您需要函数的声明。
对于您的第二个问题,我建议您阅读他们的文档
要结束这个问题,我只需要在编译过程中包含 lib,不需要包含任何标题。