|
情報ありがとうございます。
perl58.hilightで遅いのを調べてみたら、以下の正規表現の検索に極端に時
間がかかっていました。
(?<=^("([^"]|\\"|\\\\)*"|'([^']|\\'|\\\\)*'|`([^`]|\\`|\\\\)*`|[^"'`#])*)#.*
この正規表現の処理は、僕の担当している正規表現のDLL(HmJre.dll)がや
ってます。秀丸エディタのV6.14に付属してるのはV1.8で、最新はV3.07です。
で、修正箇所の履歴を調べてみたら、HmJre.dllのV1.95の段階で、とあるバ
グ修正をしていて、それのせいで遅くなっていることが分かりました。
そのバグ修正自体を今さらやめる訳にはいかないのですが、なんとか別の高
速化のための処理を入れて、それで結果として以前と同等に高速検索出来るよ
うに直すことが出来ました。
あと、同じ高速化ロジックを使って、例えば
(pattern1)pattern2
のようなケースで、pattern1の中に繰り返し指定(.*とかの類)が含まれつ
つ、pattern2に固定文字列が入っているようなケースについて、以前よりかは
高速に動作させるロジックも入れられました。
とはいいつつも、一部はやはりV1.8に比べると遅いようでして…。特にタグ
付き正規表現を使った時のバグ修正が影響してて、繰り返しが2重になってる
ようなケースでは多少遅くなるようです。
一応、今回のケースについては対処させていただきますので、とりあえずそ
れでよしとさせていただきたいと思います。
HmJre.dllの修正版(V3.08)は、次の秀丸エディタβ版/秀丸メールβ版に
添付させていただきます。
|
|