置換インターフェイスは、プロキシー・ライブラリー (リリースバージョン libtbbmalloc_proxy.so.2、デバッグバージョン libtbbmalloc_proxy_debug.so.2) により提供されます。ランタイムに (LD_PRELOAD を設定して実行ファイルを変更せずに) プロキシー・ライブラリーをロードするか、プロキシー・ライブラリーとリンクして置換を行います。
プロキシー・ライブラリーは、以下の動的メモリー関数を実装します。
C ライブラリー: malloc、calloc、realloc、free
標準 POSIX* 関数: posix_memalign
古い関数: valloc、memalign、pvalloc、mallopt
グローバル C++ 操作: new、delete
プロキシー・ライブラリーおよび適切なスケーラブル・メモリー・アロケーター・ライブラリーを含むディレクトリーがロードで利用できる必要があります。ロードで利用できるようにするには、ディレクトリーを LD_LIBRARY_PATH にインクルードするか、/etc/ld.so.conf に追加します。
置換インターフェイスを使用する場合は次の制限があります。
置換インターフェイスは、glibc メモリー・アロケーターに対する非標準の呼び出しを使用するアプリケーションでは動作しません。
モノはサポートされていません。
下記のサンプルは、置換インターフェイスを使用するように LD_PRELOAD を設定してプログラムをリンクする方法を示しています。
# リリースバージョンのプロキシーをロードするように LD_PRELOAD を設定 LD_PRELOAD=libtbbmalloc_proxy.so.2 # リリースバージョンのプロキシーとスケーラブル・アロケーターをリンク g++ foo.o bar.o -ltbbmalloc_proxy -ltbbmalloc -o a.out
次にデバッグバージョンのライブラリーをリンクするバリエーションを示します。
# デバッグバージョンのプロキシーをロードするように LD_PRELOAD を設定 LD_PRELOAD=libtbbmalloc_proxy_debug.so.2 # デバッグバージョンのプロキシーとスケーラブル・アロケーターをリンク g++ foo.o bar.o -ltbbmalloc_proxy_debug -ltbbmalloc_debug -o a.out