Boost.Poolを使ってメモリを確保するのにどのくらいの時間がかかるか調べてみた。 常に一定時間で、かつ、newよりも高速にメモリを確保出来るかどうか知りたかったからだ。 実際に動かして確認してみたところ、Boost.Poolは大きめのサイズのメモリをプールとして確保して そこからメモリを小分けに使えるようにしてくれるのだが、 プールの残量が足りなくなるともう一度大きなプールを確保するように動作した。 このためプール不足時に大きな遅延が発生してしまう。 メモリ確保にかかる時間は、100bytesのメモリを確保する前後で時刻を取得し、その差分を取る事で求めた。 計測時にはこれを10万回繰り返し行った。 また計測用プログラムの実行時にリアルタイム優先度99、スケジューリングポリシーにFIFOを指定した。 計測したOSはFedora15でlibc最適化オプションはO2。 結果は以下のようにな