как использовать tcmalloc в программах с динамическими библиотеками - PullRequest
2 голосов
/ 15 августа 2011

Я использую tcmalloc в своей основной программе A, добавляя -ltcmalloc во время компоновки. Когда A запускается, он динамически загружает несколько предварительно скомпилированных .so-файлов, таких как B.so, C.so. тогда будет ли malloc () в B.so и C.so автоматически использовать tcmalloc?

1 Ответ

3 голосов
/ 16 августа 2011

Когда A запускается, он динамически загружает несколько предварительно скомпилированных .so-файлов, таких как B.so, C.so. тогда будет ли malloc () в B.so и C.so автоматически использовать tcmalloc?

Зависит от вашей ОС и, возможно, от того, используете ли вы архив или общую версию libtcmalloc.

В Linux (и на других ELF платформах), используя libtcmalloc.so, ответ - да.
В Linux, используя libtcmalloc.a, ответ «скорее всего». Чтобы сделать это "определенным да", добавьте -rdynamic в строку ссылки для основного исполняемого файла.
В AIX ответ отрицательный, если вы не добавите несколько нетривиальных опций к B.so и C.so линиям связи.

...