Я наткнулся на этот совет на Google tcmalloc страница документации.
Вы можете использовать TCMalloc в приложениях, которые сами не компилировали, используя LD_PRELOAD:
$ LD_PRELOAD="/usr/lib/libtcmalloc.so"
LD_PRELOAD сложно, и мы не обязательно рекомендуем этот режим использования.
Почему они не рекомендуют LD_PRELOAD? Что-то не так с этим? Является ли нормальное связывание более надежным? Как?
В дополнение к ysdxответ, значение LD_PRELOAD
также будет игнорироваться (по уважительным причинам) для setuid()
под ред.
В зависимости от варианта использования это может быть нежелательно. Например, вы не можете написать оболочку сценария оболочки, которая экспортирует LD_PRELOAD
и затем выполняет фактическую программу.
Когда используешь LD_PRELOAD
, tcmalloc
Реализация будет использоваться для любого дочернего процесса, который может быть не тем, что вы хотите.