いつもお世話になっております。
特定の変数の名前と値をマップ上にウィンドウとして表示できるようなプラグインを作ってもらったのですが、このプラグインによりメモリがものすごく食われてしまい、困っています。作成した本人も手直しの仕方が分からないとのこと(笑)
元となったプラグインはYEP_MapGoldWindowだそうです。こちらでは、メモリリークを起こしませんでした。
改変したプラグインを添付しますので、修正箇所と対処方法が分かる方がいましたら教えて頂きますでしょうか。
【解決】プラグインによるメモリリーク現象を解消したい。
【解決】プラグインによるメモリリーク現象を解消したい。
- 添付ファイル
-
MNS_QuestValue.js
- (7.93 KiB) ダウンロード数: 10 回
最後に編集したユーザー ネコタ [ 2016年11月03日(木) 22:14 ], 累計 1 回
Re: プラグインによるメモリリーク現象を解消したい。
メモリリークというのは、要するに「不要なものを消さないまま、新しいものをどんどん作っている」状態ですので、
原因を探るならそういう箇所を中心に調べたら良いと思います。
で、このプラグインですが、毎フレーム、ウインドウを作りまくってます。
137~139行目はいらないと思います(何のための処理でしょうか?)。
また、メモリリークとは関係ありませんが、ウインドウの内容を再描画する際に
それまで描画されていた内容をクリアしていないため、ガンガン重ねて描画されてます。
Window_ValueVisible.prototype.refresh関数の一行目に「this.contents.clear();」を入れるようにしてください。
以上。
原因を探るならそういう箇所を中心に調べたら良いと思います。
で、このプラグインですが、毎フレーム、ウインドウを作りまくってます。
137~139行目はいらないと思います(何のための処理でしょうか?)。
また、メモリリークとは関係ありませんが、ウインドウの内容を再描画する際に
それまで描画されていた内容をクリアしていないため、ガンガン重ねて描画されてます。
Window_ValueVisible.prototype.refresh関数の一行目に「this.contents.clear();」を入れるようにしてください。
以上。
Re: プラグインによるメモリリーク現象を解消したい。
奏ねこま さんが書きました:メモリリークというのは、要するに「不要なものを消さないまま、新しいものをどんどん作っている」状態ですので、
原因を探るならそういう箇所を中心に調べたら良いと思います。
で、このプラグインですが、毎フレーム、ウインドウを作りまくってます。
137~139行目はいらないと思います(何のための処理でしょうか?)。
00.png
また、メモリリークとは関係ありませんが、ウインドウの内容を再描画する際に
それまで描画されていた内容をクリアしていないため、ガンガン重ねて描画されてます。
Window_ValueVisible.prototype.refresh関数の一行目に「this.contents.clear();」を入れるようにしてください。
01.png
以上。
回答ありがとうございます。
書いてある通りにやってみたら、無事解消しました!
助かりました。ありがとうございます!