プロキシー・ライブラリーのリリースバージョンは libtbbmalloc_proxy.so.2、デバッグバージョンは libtbbmalloc_proxy_debug.so.2 です。
以下の動的メモリー関数が置換されます。
標準 C ライブラリー関数: malloc、calloc、realloc、free、(C11 で追加) aligned_alloc
標準 POSIX* 関数: posix_memalign
古い関数: valloc、memalign、pvalloc、mallopt
置換可能なグローバル C++ 操作: new、delete
GNU C ライブラリー (glibc) 固有の関数: malloc_usable_size、__libc_malloc、__libc_calloc、__libc_memalign、__libc_free、__libc_realloc、__libc_pvalloc、__libc_valloc
LD_PRELOAD 環境変数を使用して (実行ファイルを変更しないで) プログラムロード時にプロキシー・ライブラリーをロードするか、メイン実行ファイルをプロキシー・ライブラリーとリンクして、置換を行うことができます。
OS プログラムローダーは、プログラムロード時にプロキシー・ライブラリーとスケーラブル・メモリー・アロケーター・ライブラリーを検索可能でなければなりません。検索可能にするには、ライブラリーを含むディレクトリーを LD_LIBRARY_PATH 環境変数に追加するか、/etc/ld.so.conf に記述します。
動的メモリー置換には次の制限があります。
glibc メモリー・アロケーションのフック ( __malloc_hook など) はサポートされていません。
Mono はサポートされていません。
下記のサンプルは、メモリー割り当て置換インターフェイスを使用するように LD_PRELOAD を設定する方法とプログラムをリンクする方法を示しています。
# プロキシー・ライブラリーのリリースバージョンをロードするように LD_PRELOAD を設定 LD_PRELOAD=libtbbmalloc_proxy.so.2 # プロキシー・ライブラリーのリリースバージョンとリンク g++ foo.o bar.o -ltbbmalloc_proxy -o a.out
ライブラリーのデバッグバージョンを使用するには、上記のサンプルの tbbmalloc_proxy を tbbmalloc_proxy_debug に置き換えます。