Memory management 如何在具有动态库的程序中使用tcmalloc

Memory management 如何在具有动态库的程序中使用tcmalloc,memory-management,linker,malloc,Memory Management,Linker,Malloc,通过在链接时间中添加-ltcmalloc,我在主程序A中使用了tcmalloc。当A启动时,它将动态加载几个预编译的.so文件,例如B.so、C.so。 那么,B.so和C.so中的malloc()会自动使用tcmalloc吗 当A启动时,它将动态加载几个预编译的.so文件,例如B.so、C.so。那么,B.so和C.so中的malloc()会自动使用tcmalloc吗 取决于您的操作系统,可能还取决于您使用的是存档版本还是共享版本的libtcmalloc 在Linux(和其他ELF平台)上,使

通过在链接时间中添加-ltcmalloc,我在主程序A中使用了tcmalloc。当A启动时,它将动态加载几个预编译的.so文件,例如B.so、C.so。 那么,B.so和C.so中的malloc()会自动使用tcmalloc吗

当A启动时,它将动态加载几个预编译的.so文件,例如B.so、C.so。那么,B.so和C.so中的malloc()会自动使用tcmalloc吗

取决于您的操作系统,可能还取决于您使用的是存档版本还是共享版本的
libtcmalloc

在Linux(和其他
ELF
平台)上,使用
libtcmalloc.so
,答案是肯定的。
在Linux上,使用
libtcmalloc.a
,答案是“最有可能”。要使其成为“确定的是”,请将
-rdynamic
添加到主可执行文件的链接行。
在AIX上,答案是否定的,除非您在
B.so
C.so
链接行中添加了大量非平凡的选项。

所说的“动态”是指在加载时还是在运行时(使用
dlopen
)?