SkRegExp version 1.1.6 β版公開

SkRegExp version 1.1.6 β版を公開しました。

G の動作が間違っていたのを修整しました。

バグと言うよりは私の理解が間違っていたのが原因です。私の理解どおりには動いていたので。

今回の目玉は自分の中で長年の課題だった文字クラスの最適化を行ったことです。

実は今回の方法に落ち着くまで4つの方法を試しましたが、一番わかりやすくて速度も速い方法にしました。

詳しくは TRECharClassCode クラスを見てください。

この最適化によって、いい勝負になってしまっていた TRegEx (TPerlRegEx) との差を広げることに成功しました。

文字クラスだけの比較なら倍、SkRegExp の方が速いです。

ちなみに、私が速い遅いと言うときは、文字コード変換のオーバーヘッドを除いた上で比べています。

具体的には、マッチが始まって終わるまでの時間のみを計測した結果で話しています。

あと、今まで SkRegularExpressions.pas を同梱していましたが保守が面倒なので別配布にします。

その SkRegularExpressions.pas も書き換えています。

やっつけで作ったままなので、ちゃんとしておきたいのです。

その書き換えで気づいたのですが、RegularExpressions.pas にある TScopeExitNotifier クラスはちょとやばくないですか?

これをハックして使ったら、SkRegularExpressions.pas では、解放したメモリにアクセスしてしまいました。

コメントを残す

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