私は解釈するのに十分な経験がないというメモリ警告を受け取る iPhone ゲームに取り組んでいます。私はいくつかの iTunesU チュートリアルを見てきましたが、私はまだこれが得意ではありません..
ゲームの実行中にさまざまなメモリ リークが発生したため、Instruments で表示されるスタック トレースを正しく解釈する方法を理解したいと思いました。
ObjectAllocation インストルメント出力のスクリーンショットを添付します 。フィルターをズームしても、 ObjectSummary のデータをフィルター処理できません。
1のメモリ使用量のピークは、GameScene が初期化され、すべてのデータが読み込まれ (ParallaxBackground、CCSpriteBatchNode)、スプライト フレームとブレット フレームが作成されたときに発生します (spriteFrame の CCArray 内)。
大きな青色のピークはロード時だけですが、アプリがフリーズしてしばらくするとクラッシュし、グラフからメモリ使用量 (青色のバー) が低下していることがわかります..だから私はそれを黙っていません. また、リーク計測器を使用しようとすると、アプリがクラッシュします..
経験豊富な人にとっては非常にばかげた質問であることはわかっていますが、このツールセットを使い始めるために追加のサポートが必要です.
メモリの問題は、スプライト キャッシュ クラスに割り当てるスプライトが原因だと思いますが、これについてはよくわからないため、Instruments を使用してこれを調査したかったのですが、メモリ警告の原因となっているオブジェクトを確認する方法を見つけることができません。スタックトレースにアクセスする方法..
PS: 私は iPod 第 4 世代で実行しており、Cocos2D をライブラリとして使用しています。
編集: Live Bytes が 1.01 MB しかない場合にアプリがクラッシュする理由と、メモリ警告が引き続き表示される理由もわかりません (黒いフラグを参照)。null 変数を参照するポインターが原因なのか、それとも過剰なメモリ割り当てが原因なのか? 1.01 MB は私にはあまりないようです..
編集 2: マリオンのアドバイスに従って、アクティビティ モニターを使用したところ、実際のメモリ使用量が 55.39 MB であることがわかりました。「ライブバイト」という言葉を誤解していました。私はこれをさらに掘り下げようとし、他の人が貢献できるように、今のところ質問を受け入れないままにします. 1、2 日以内に他の回答がない場合は、現在の回答を承認済みとしてマークします。ありがとう!
どうもありがとう!