マルチプロセッサ/マルチスレッド メモリアロケータ Hoard

Hoard というメモリアロケータを、弊社サーバエンジニアの方から教えてもらいました。

使い方は簡単で、

export LD_PRELOAD="/path/libhoard.so:/lib/libdl.so"

などとしておくと、アプリケーション実行時に Hoard のライブラリを読み込み、malloc/free を Hoard のものに置き換えます。これにより、マルチプロセッサ/マルチスレッド環境でパフォーマンスを発揮する Hoard のメモリアロケーションアルゴリズムが、アプリに一切手を加えることなく利用できる、というわけです。

もちろん仕組み上、FAQ にあるように、スタティックリンクされたアプリや、malloc/free を使わずに独自のメモリアロケータを使っているアプリでは利用することはできませんが、ほとんどのアプリには利用できるんじゃないでしょうか。