2014-12-05 77 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實現將用於任何子進程,也可能不是您想要的。

相關問題