自作ゲームで、戦闘中にDeveloper Toolsの動作が異常に重くなりクラッシュするという現象が起こってしまっています。
タスクマネージャーで見るとGame.exeの使用メモリが通常時400-500MB程度から1G近くにまで膨らんでいるのでメモリリークが起きているのではと考えていますが、その原因が掴めずに困っています。
MVのバージョンは1.3.4です。
こちらの記事(http://qiita.com/pekimocche/items/c8dabd1eb2ebb327a182)を参考に色々試してみたのですが、どうしてもクラッシュを確実に再現することができませんでした。
スナップショットの見方はよく分かっていないのですが、表示されている各数字は通常時とクラッシュ前で大きく変わってはいないようでした。クラッシュ前に撮れたスナップショットがこちら(http://i.imgur.com/BjooywB.jpg)です。
また、DevTools自体が重くなるので、重くなり始めてからスナップショットを撮ること自体が困難で、ほとんどの場合撮り終える前にクラッシュしてしまうという状態です。
クラッシュが起こるのは必ず戦闘中で、まずDevToolsが異常に重くなります。トリアコンタン様のDevToolsManagerを利用してスキル使用のたびにダメージ計算結果などをalertでコンソールに表示させていますが、その表示が十数秒~数十秒遅れます。前述のようにスナップショットを撮ることも困難になります。
しかしゲーム自体は少しカクつく程度で、DevToolsを見ていないとほとんど前触れなしにクラッシュするような感じです。
戦闘は大幅にスクリプトに手を入れているのでその何かが原因だとは思うのですが、変更箇所が多すぎて一つ一つ調べるのが現実的でないため、何か原因を特定または原因のあたりをつける方法がないかと思い投稿しました。
どなたかお知恵をお貸し願えませんでしょうか
メモリリーク(?)の原因を調べたい
Re: メモリリーク(?)の原因を調べたい
追記です。
メモリリーク対策プラグインとしてSAN_GC.jsを導入してみましたが、解決できませんでした。
また、一度症状が発生してからクラッシュせずに戦闘を終えられたのでそのまま放置してみたところ、
やはり戦闘中と同じように少しずつ使用メモリが増えていき、20分ほどで800MB→1GBになりクラッシュしました。
SAN_GC.jsでログを出す設定にしていましたが、クラッシュ直前まで正常時と変わらない内容でした。
メモリリークではないのでしょうか?
かなり困っています。どなたか、解決のヒントをいただけませんでしょうか…。
メモリリーク対策プラグインとしてSAN_GC.jsを導入してみましたが、解決できませんでした。
また、一度症状が発生してからクラッシュせずに戦闘を終えられたのでそのまま放置してみたところ、
やはり戦闘中と同じように少しずつ使用メモリが増えていき、20分ほどで800MB→1GBになりクラッシュしました。
SAN_GC.jsでログを出す設定にしていましたが、クラッシュ直前まで正常時と変わらない内容でした。
メモリリークではないのでしょうか?
かなり困っています。どなたか、解決のヒントをいただけませんでしょうか…。
Re: メモリリーク(?)の原因を調べたい
正直情報が少なくて曖昧なことしか言えませんが、
この手のリークはnew Window_○○~addWindowやnew Sprite_○○~addChildを
不必要に毎フレームやってることが多いと思います。
プラグインが原因なら、まずはプラグインを部分的にOFFにしてそのプラグインの特定を、
ご自身で書き換えられた部分が原因であれば、上記で言った部分を目処に探してみるしかないのでは。
この手のリークはnew Window_○○~addWindowやnew Sprite_○○~addChildを
不必要に毎フレームやってることが多いと思います。
プラグインが原因なら、まずはプラグインを部分的にOFFにしてそのプラグインの特定を、
ご自身で書き換えられた部分が原因であれば、上記で言った部分を目処に探してみるしかないのでは。
Re: メモリリーク(?)の原因を調べたい
奏ねこまさん、ご返信ありがとうございます。
自作部分で挙げていただいたメソッドを使っている箇所全てにalertを仕込み、自作とDevTools拡張以外のプラグインを全てOFFにしてテストしてみましたが、毎フレームごとに実行している箇所は見つけられませんでした…。
情報が少なくて申し訳ありませんが、長時間経過させる以外に確実な再現方法が見つかってないので、どこから調べればいいかもよく分からない状態です。
最初に必ず戦闘中に起こると書きましたが、前回はマップ画面でクラッシュしたのでどこで起こるかもはっきりしていません…。
DevToolsとタスクマネージャーとにらめっこしながらテストプレイしていますが、どこかを境にはっきり変わるわけでなく、気づかないうちに発症している感じです。
役に立つかわかりませんが、入れているプラグインの一覧を貼ります。http://i.imgur.com/98uuI9J.png
他に解決の役に立ちそうな情報や、調べ方などがあればぜひ教えてください。
自作部分で挙げていただいたメソッドを使っている箇所全てにalertを仕込み、自作とDevTools拡張以外のプラグインを全てOFFにしてテストしてみましたが、毎フレームごとに実行している箇所は見つけられませんでした…。
情報が少なくて申し訳ありませんが、長時間経過させる以外に確実な再現方法が見つかってないので、どこから調べればいいかもよく分からない状態です。
最初に必ず戦闘中に起こると書きましたが、前回はマップ画面でクラッシュしたのでどこで起こるかもはっきりしていません…。
DevToolsとタスクマネージャーとにらめっこしながらテストプレイしていますが、どこかを境にはっきり変わるわけでなく、気づかないうちに発症している感じです。
役に立つかわかりませんが、入れているプラグインの一覧を貼ります。http://i.imgur.com/98uuI9J.png
他に解決の役に立ちそうな情報や、調べ方などがあればぜひ教えてください。
Re: メモリリーク(?)の原因を調べたい
こんにちは。
入れているプラグインは、すべて最新のものを使用していますか?
ぱっと見たところYEP_BattleEngineCoreは、だいぶ古いバージョンを使用していますね。
古いバージョンのプラグインを使用している場合、peaさんに起きている現象はどれかのプラグインの不具合ですでに解消されているかもしれません。
入れているプラグインは、すべて最新のものを使用していますか?
ぱっと見たところYEP_BattleEngineCoreは、だいぶ古いバージョンを使用していますね。
古いバージョンのプラグインを使用している場合、peaさんに起きている現象はどれかのプラグインの不具合ですでに解消されているかもしれません。
---------------------------------------------------------------------------------------------------
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md
検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
プラグイン置き場(GitHub)
https://github.com/futokoro/RPGMaker/bl ... /README.md
検討中の内容は上記リンク先の「対応するかもしれないプラグインのメモ」を参照してください。
Re: メモリリーク(?)の原因を調べたい
フトコロさん、ご返信ありがとうございます。
ご指摘ありがとうございます。
一度使っているプラグインのバージョンを全て見直してみます。
ご指摘ありがとうございます。
一度使っているプラグインのバージョンを全て見直してみます。