SkRegExp version 1.1.5 β版公開

SkRegExp version 1.1.5 を公開しました。

毎度書いていますが、β版といっても version 1.0.x と同じテストプログラムはクリアしていて、実用上の問題はないはずです。

最近の version 1.0.x の修正も、version 1.1.x で見つけたものばかりですからね。

それでもβ版としている理由は仕様を変更できる自由を確保しておきたいからです。

さて、version 1.1.5 の目玉はスピードアップです。

Delphi XE で SkRegExp と PerlRegEx の速度の比較をしたとき、PerlRegEx に逆転されたことがきっかけで、最適化を見直しました。

結論から言うと、Delphi XE でも、PerlRegEx より速くなりました。もっとも速いケースでは倍以上速くなっています。

さもすごい最適化をしたように思うかもしれませんが大したことはやっていません。

他の正規表現ライブラリがやっている基本的な最適化を SkRegExp でも実装しただけです。

具体的には、先頭文字になりうる候補をテーブルにしただけです。

PerlRegEx のエンジンである PCRE でも、鬼車でも行っている最適化です。

Aho-Corasick 法にこだわってきましたが、テーブルを使った方がはるかに速くなりました。

仕様はこれで決定します。あとは、タイミングを見て version 1.1.x を正式版にします。

コメントを残す

メールアドレスが公開されることはありません。