試行memory.2nd

Space not farのあれ
メモリリーク殺すべし

ふりーむでレビュー書いてくれたりメールなどで感想お寄せいただいたりありがとうございます。

ちゃんと読んでいます。

 

 

 

XP以降のツクールである程度RGSSを編集して製作している人は一度は目にしたんじゃないでしょうか。

RGSS playerが停止したというメッセージとともに、ゲームが強制終了してしまう不具合です。

天使心母の製作中、極稀に出てくるこれに一ヶ月ぐらいは悩まされていました。

・確実に起こらない(再現性がない)ので、直ったのかどうかわからない

・エラーメッセージを出さないので、原因を特定するのが困難

この二点が非常にヤバくてハゲそうになりました。

(泥や雪でも似たような現象はひっそりと起こってるかもしれません)

 

調べてみたところ、メモリリークというものが原因だそうです。

スプライト(画像オブジェクト)がシーン遷移時に解放し忘れている、

あるいは関連付けられたビューポートをスプライトより先に解放してしまった時

ガベージコレクトなんちゃらかんちゃらがなんちゃらして参照されないメモリがなんちゃらしてしまうそうです。

あんまりわかっていません。

 

RGSS編集でdisposeをaliasするとよく陥りがちな罠のようです。

(スプライト解放→ビューポート解放→スプライト解放みたいな処理順になってしまう)

目を皿にしてRGSSエディタを見ながら解放し損ねを探したんですが人間の目ではちょっと限界があります。

 

困り果てながら「RGSS3 memoryleak」みたいな感じで検索をしたところ、こんなスクリプトが見つかりました

クラッシュ原因を検出・報告するRGSSだそうです。

ツクールの技術は国内よりも海外のサイトが進んでるみたいですね。

 

 

試しに導入してみたところクラッシュ原因が出るわ出るわ。

これで全ての原因を根絶できたのかはわからない(悪魔の証明)んですが、本当に助かりました。

同様に原因不明のメモリリークに悩まされている方は試してみてはいかがでしょうか。

(このフォーラムの規約はよくわからないんですが、多分フリーだと思います)

 

追記

http://trymemory.muspell.raindrop.jp/?eid=7#comments

こちらのコメントで言われていたのがまさにそういうことだったみたいですね。

当時は「え? ビューポート? なにそれ? 歌? 外人?」みたいな認識でして……

| muspell | - | 14:43 | comments(0) | - | - |
    123
45678910
11121314151617
18192021222324
252627282930 
<< June 2017 >>
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ ARCHIVES
+ LINKS
+ MOBILE
qrcode