ExecNext が遅い…

SkRegExp の TSkRegExp.ExecNext が遅いことに気づいた。

TSkRegExp の ExecPos と Exec を1回実行するだけなら TRegEx より速い。

これは Google で “Regular expression bench mark” で検索して出てくる正規表現のベンチマークプログラムで検証している。

しかし、同じパターンで同じテキストを繰り返し検索すると遅くなる。

困ったことに遅くなる原因がよくわからない…。

TREMatchEngine.MatchEntry か、TMatchEngine.MatchPrim が遅いのだとは思う。

でも、どちらもこれ以上速くする余地があるとは思えないのだが。

ExecNext が遅い…」への2件のフィードバック

  1. 小宮 秀一 投稿作成者

    今まで XE 付属のツール AQTime で調べていました。

    Sampling Profiler は知りませんでした。

    便利そうですね。使ってみます。

    ExecNext が遅かったのはテスト環境の問題だったかもしれません。

    コレを書いた以降のテストでは速いので。

    SkRegExp の構造上、Exec と ExecPos を単独で実行する方が遅いはずです。

    したがって、ExecNext が遅いのは何かを根本的に間違えていたということになります。

    だから焦った次第です。

    返信

コメントを残す

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