ページ 1 / 1
【解決】プラグインによるメモリリーク現象を解消したい。
Posted: 2016年11月03日(木) 09:19
by ネコタ
いつもお世話になっております。
特定の変数の名前と値をマップ上にウィンドウとして表示できるようなプラグインを作ってもらったのですが、このプラグインによりメモリがものすごく食われてしまい、困っています。作成した本人も手直しの仕方が分からないとのこと(笑)
元となったプラグインはYEP_MapGoldWindowだそうです。こちらでは、メモリリークを起こしませんでした。
改変したプラグインを添付しますので、修正箇所と対処方法が分かる方がいましたら教えて頂きますでしょうか。
Re: プラグインによるメモリリーク現象を解消したい。
Posted: 2016年11月03日(木) 10:38
by 奏ねこま
メモリリークというのは、要するに「不要なものを消さないまま、新しいものをどんどん作っている」状態ですので、
原因を探るならそういう箇所を中心に調べたら良いと思います。
で、このプラグインですが、毎フレーム、ウインドウを作りまくってます。
137~139行目はいらないと思います(何のための処理でしょうか?)。

- 00.png (24.23 KiB) 閲覧された回数 2159 回
また、メモリリークとは関係ありませんが、ウインドウの内容を再描画する際に
それまで描画されていた内容をクリアしていないため、ガンガン重ねて描画されてます。
Window_ValueVisible.prototype.refresh関数の一行目に「this.contents.clear();」を入れるようにしてください。

- 01.png (18.29 KiB) 閲覧された回数 2153 回
以上。
Re: プラグインによるメモリリーク現象を解消したい。
Posted: 2016年11月03日(木) 22:14
by ネコタ
奏ねこま さんが書きました:メモリリークというのは、要するに「不要なものを消さないまま、新しいものをどんどん作っている」状態ですので、
原因を探るならそういう箇所を中心に調べたら良いと思います。
で、このプラグインですが、毎フレーム、ウインドウを作りまくってます。
137~139行目はいらないと思います(何のための処理でしょうか?)。
00.png
また、メモリリークとは関係ありませんが、ウインドウの内容を再描画する際に
それまで描画されていた内容をクリアしていないため、ガンガン重ねて描画されてます。
Window_ValueVisible.prototype.refresh関数の一行目に「this.contents.clear();」を入れるようにしてください。
01.png
以上。
回答ありがとうございます。
書いてある通りにやってみたら、無事解消しました!
助かりました。ありがとうございます!