2014-12-05 89 views
1

我在Google的tcmalloc文档页面上看到了这条建议。为什么不鼓励LD_PRELOAD的使用?

您可以使用TCMalloc在应用中,你没有自己编译,通过使用LD_PRELOAD:

$ LD_PRELOAD="/usr/lib/libtcmalloc.so" 

LD_PRELOAD是棘手的,而且我们也无意建议使用这种模式。

为什么他们不鼓励LD_PRELOAD?它有什么内在的错误吗?正常链接更强大吗?怎么样?

+0

那么文档提出了一种做某事的方法,但他们不希望人们在这里使用“LD_PRELOAD”来插入错误的原因。 – 2014-12-05 08:38:17

+0

那些不好的理由是我想理解的。他们只说这很棘手 – Sam 2014-12-05 08:57:47

回答

2

除了ysdx的回答中,LD_PRELOADwill also be ignored值(有很好的理由)为setuid()编程序。

根据使用情况,这可能是不可取的。例如,您不能编写一个输出LD_PRELOAD然后执行实际程序的shell脚本包装器。

3

当使用LD_PRELOAD时,tcmalloc实现将用于任何子进程,也可能不是您想要的。

相关问题