「SkRegExpって遅いじゃねえか!」と言うあなたへ

version 0.9 のころは、そう言われても当然でしたが、最適化を施した verion 1.0 でも「遅い」と指摘されることがあります。

今ベンチマークの対象にしているのは PCRE のラッパーコンポーネントの TPerlRegEx です。

Delphiで正規表現というと TPerlRegEx が取り上げられることが多いからです。

私が試している範囲では、SkRegExp は TPerlRegEx より速く処理できることが多いです。

もし、TPerlRegEx と比較して遅いのであれば、それは DEBUG モードでコンパイルしているためかもしれません。

TPerlRegEx は正規表現エンジンは DLL 上にあり、Delphi コンパイラの影響は受けません。しかし、SkRegExp はフル Delphi ですから、もろに影響を受けます。

もし、TPerlRegEx と比較して遅いと感じるのであれば、取り敢えず RELEASE モードで試してみてください。オプションの具合によっては劇的に速くなります。

これ、実は、私もはまったのでご注意ください。

ついさっき、新機能を追加中にベンチマークを取ったらあまりにも遅かったので何度も書き直しました。4時間試行錯誤を繰り返した挙句、DEBUGモードで動かしていたことに気づきました。結局、最初のままで速かったのでした。

もちろん、特定の正規表現で遅いと言う指摘は大歓迎ですので、メールでも、コメントでも結構ですのでお寄せください。

コメントを残す

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