異常に遅くなってあたふた

SkRegExp の性能を評価するため、いろいろ変更したらベンチマークを取るようにしています。

比較のターゲットにしているのは、ロジックが異なる何ちゃって正規表現 TSkRegExp0.9.4、公開停止になってしまったらしい(?)かつての定番 TRegExpr、そして今の定番らしい TPerlRegEx の3つ。同じ正規表現検索を5万回実行させて速度を比較しています。

そのベンチマークを昨日チェックしたら、何と最下位に落ち込んでしまいました。

かつて、47ミリ秒で終わった正規表現が、1047ミリ秒まで落ち込んでしまいました。

1.0.10 を公開したときは、ある種の繰り返しでは我がSkRegExpがダントツに速かったのですが、その他の正規表現でも軒並み速度が落ちていました。

最適化していたつもりが裏腹に遅くなったんですから慌てました。

取り敢えず、先頭文字一致のチェックが以前より後退していることに気づいて訂正したんですが、大して速度が上がりません。

悩んだ末、今日、過去のバージョンを引っ張り出して比較したらそれも同じように遅い。

ここでやっと気づきました。「コンパイルオプションだ!」。

設定マネージャでReleaseにしてコンパイルしたら元に戻りました。取り敢えず一安心。

無駄な時間をすごしました。

と言うわけで、version 1.0.11 公開しました。

http://skregexp.komish.com/download/

コメントを残す

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