

お世話になっております。  
WEB APIに接続する直前に正規表現の数万行のマクロを通すと異常に重くなります。  
フリーズしたような状態に陥ってWEB APIのところで止まるのですが、原因は何が考えられますでしょうか？

この現象は正規表現のコードをなくして単なる置換のみにしたり、マクロの行を減らすか、このマクロのインクルードを外してテストすると解消してサクサク状態になります。  
画像は重くなる現象の直前の終了部分になります。  
現在のテスト段階ではこれが一番多い行になります。  
EmEditorは最新です。  
よろしくお願いいたします。

[![画像の説明をここに入力](https://i.stack.imgur.com/O5gR2.png)](https://i.stack.imgur.com/O5gR2.png)


CC BY-SA 4.0
2021-03-17T19:28:16.663
74728
2021-03-18T16:31:35.880
43999
question
emeditor
EmEditorで正規表現の大量行を通すと起こる現象


多数の複雑な正規表現を使用した連続検索/置換の後は、検索文字列の強調表示が著しく遅くなっている可能性があります。そのため、その後の動作が遅く感じられることがあります。その対処方法として、次の方法が考えられます。

  1. 連続置換は、なるべく正規表現を使用せず、置換数を減らして、できるだけシンプルにしてみてください。

  2. `ツール` メニューの `すべての設定のプロパティ` の `表示` ページで、`検索色` を `0` にします。

  3. マクロを実行中だけ、検索色を 0 にしたい場合には、以下の3行をマクロの最初で実行します。

[code]

    cfg = document.Config;
    cfg.Display.SearchColors = 0;
    cfg.Save();
    
[/code]

さらに、以下の3行をマクロの最後で実行します。

[code]

    cfg = document.Config;
    cfg.Display.SearchColors = 1;
    cfg.Save();
    
[/code]

ただし、マクロがエラーのために途中で中断された場合には、自動的には元に戻りません。

  4. マクロの最初に `Redraw = false;` と記述します。再描画が必要なタイミングでは、`Redraw = true;` と記述することにより、必要な時だけ再描画されます。マクロが終了すると、自動的に `Redraw = true;` を実行するのと同様に再描画されます。


CC BY-SA 4.0
2021-03-18T16:31:35.880
74747
2021-03-18T16:31:35.880
40017
74728
answer