マクロエラーNo.09864
おすぎ さん 22/05/27 11:00
 
お世話になっております。

Ver 9.14 32bitを使っています(PCは64bit)

先月、バージョンアップしてから、次のようなエラーメッセージが作業中に数時間ご
とに出るようになりました。

・「BeginMacro Memory Error(4) code=8」
・「マクロエラー:文字列が長すぎます。「動作環境・環境」でマクロの変数の上限
サイズを大きくすれば回避出来る可能性があります」

これらのメッセージが出るたびに、ファイルを閉じて開き直しています。

解決策があったら教えて下さい。


なお「動作環境・環境」ではマクロの変数は最大限に設定してあります。
・マクロの変数の上限サイズ 64MB
・マクロの静的変数の上限   10240KB

また、バージョンアップしたときに、setstaticvariable を少し試して やめたので、
その影響かなと思ったのですが、以下を実行しても直りません。
setstaticvarible "", "", 1

以下を実行しても、何の文字列も返りません。
message "共有されている名前一覧:\n"+getstaticvariable( "", 1 );
message "現在の秀丸エディタ内の名前一覧:\n"+getstaticvariable( "", 0 );

何か手立てがあったら教えて下さい。
よろしくお願いいたします。

[ ]
RE:09864 マクロエラーNo.09865
秀丸担当 さん 22/05/27 11:50
 
エラーコードによりますと、メモリ不足のうち、アドレス空間不足ということのよう
です。
マクロの変数の上限サイズに比例するサイズで、実際に変数を使用するしないに関わ
らず、連続したアドレス空間が不足してメモリ不足と判断されているようです。

マクロを何度か実行して、メモリ使用量が一方的に増えるとしたら、何らかのメモリ
リーク(解放し忘れ)がどこかにあるのかもしれません。
秀丸エディタの最近のバージョンでそういう問題が出てしまったのかもしれないです。
マクロそのものとしては、例えばcreateobjectをしてからkeepobjectで残して、一方
的に増えるとそういうことが起こりえます。
メモリ使用量は、[その他]→[秀丸エディタについて...]の左上の▼ボタンから「メ
モリ使用状況の確認」を選んで知る方法があります。
または、タスクマネージャで詳細表示にしたりして知る方法もあります。

メモリ使用量が一方的に増えるわけではないとしたら、32bit版におけるアドレス空
間が逼迫しているのかもしれないです。
最近のバージョンでマクロの変数の上限サイズの約3倍のアドレス空間を確保するよ
うな変更があったので、いままでギリギリだったとしたら、バージョンアップで影響
が出てしまう可能性がありました。
その場合、マクロの変数の上限サイズを減らすと効果があります。
または、loaddllで田楽DLLなど32bit版のDLLを使っていなければ、秀丸エディタを64
bit版にすると効果があります。

もし差支えなければ、マクロの内容などを"taki@maruo.co.jp"まで送っていただける
とこちらで調べることができるかもしれません。

[ ]
RE:09865 マクロエラーNo.09866
おすぎ さん 22/05/27 12:46
 
ありがとうございます。

メモリ使用量 を調べたところ、数分の作業で下のように増加しました。

@メモリ使用量=93MB
  ヒープ使用量=21731KB/0KB
  GDI=944
  USER=157
Aメモリ使用量=96MB
  ヒープ使用量=21764KB/0KB
  GDI=1025
  USER=160

エラーが出るマクロは1つだけではありません。どのマクロを起動させてもエ
ラーメッセージが出るようになります。

それでも、そちらにマクロを送った方が早いでしょうか?

[ ]
RE:09866 マクロエラーNo.09867
秀丸担当 さん 22/05/27 13:23
 
情報ありがとうございます。
一度の計測で3MBくらいだと、通常のことかもしれず、判断がつかないです。
また何度かして、99MB、102MB、と際限なく増えていって、1000MBとかそれくらいに
なってしまうようなことだとしたら、メモリリークがあるのだと思います。
マクロを送ってもらって、再現できればそのほうが早いかもしれません。

[ ]