Linux* C/C++ 動的メモリー・インターフェイスの置換

置換インターフェイスは、プロキシー・ライブラリー (リリースバージョン libtbbmalloc_proxy.so.2、デバッグバージョン libtbbmalloc_proxy_debug.so.2) により提供されます。ランタイムに (LD_PRELOAD を設定して実行ファイルを変更せずに) プロキシー・ライブラリーをロードするか、プロキシー・ライブラリーとリンクして置換を行います。

プロキシー・ライブラリーは、以下の動的メモリー関数を実装します。

プロキシー・ライブラリーおよび適切なスケーラブル・メモリー・アロケーター・ライブラリーを含むディレクトリーがロードで利用できる必要があります。ロードで利用できるようにするには、ディレクトリーを LD_LIBRARY_PATH にインクルードするか、/etc/ld.so.conf に追加します。

置換インターフェイスを使用する場合は次の制限があります。

サンプル

下記のサンプルは、置換インターフェイスを使用するように 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