SkRegExp version 1.0.10について

本日、1.0.9、1.0.10 と立て続けにリリースしました。

今回のバージョンはかなり変わってます。変えたのは高速化のためです。

単純な繰り返しの高速化のため、今までは専用のクラスを使っていましたが、TRECode に ExecRepeat と言うメソッドを設けて使うことにしました。

一気に他のクラスでも高速化ができました。

次に、先頭文字を認識して、必要な場所でのみ正規表現エンジンを起動することによって、高速化を図りました。

以前のバージョンでも似たような方法は採用していましたが、中途半端に正規表現エンジンを使っていたため、今のほうがより速くなっています。

また、ボトルネックになっていたTREStackの構造を変更しました。

処理速度は、手元で調べた限り、TRegExpr や TPerlRegEx といい勝負してますが、TPerlRegEx (PCRE) は正規表現によっては DFA で動くらしいのでそうなると太刀打ちできません。

まあ、その辺りは将来の課題と言うことで、あと少し、現実的な最適化を施して生きたいと思います。

コメントを残す

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