C++で正規表現 (ベンチマーク)

各ライブラリに速度差があるのかどうか調べてみた。
とあるブログをソースとして、テキストの一致判定を行った。一部を削ってみて4パターンで実行した結果は以下の通り。ビルド環境はPentiumM 1.8GHz、Visual C++ 6.0 SP5。単位はmicrosec、sizeは被検索文字列の大きさである。

sizePCRE 6.6Boost 1.33.1BREGEXP.DLL 2.0.4.29
1KB2168
4KB116351042
15KB3641522223
100KB2503960失敗
なおnakka氏のregexとラング・エッジのlei_jregexは、4KB以上のテキストでは実行できなかったので載せていない。

PCREはそこそこの性能が出ている。
Boostはサイズが大きくなってもそれほど遅くならず、優秀である。
BREGEXPはサイズが小さいと高速だが、サイズが大きくなるに従って遅くなり、15KBほどでギブアップした。