【发布时间】:2021-02-22 08:09:57
【问题描述】:
我有许多与 tcmalloc (.a) 链接的可执行文件。 我通常在可执行级别执行此操作,以便可执行文件加载的任何共享库都受益于 tcmalloc。
但是,我有一个需要向用户提供 .so 库的场景。
在那个共享库中使用 tcmalloc 可以吗?
如果用户的可执行文件本身没有与 tcmalloc 链接会发生什么?
谢谢。
【问题讨论】:
-
如果使用 tcmalloc 极大地提高了库的性能,那么最好将库与它链接起来,但应用程序可能有其他不适合 tcmalloc 的内存分配模式.因此,至少要做到这一点,以便您对 tcmalloc 的使用是私有的(请参阅答案)。如果您的库的性能并不真正依赖于 tcmalloc,那么我根本不会链接它,而是让应用程序来决定使用什么内存分配器。