多くのメモリ警告を受け取った後、私のアプリは常にクラッシュしています。コードの長さは約3万行であるため、問題を追跡するのは簡単ではありません。私はそれを機器で実行しましたが、いくつかの段階で最大30MBのライブバイトがありますが、私が知る限り、これはそれほど問題にはならないはずです。メモリリークはごくわずかであるため、問題になることはありません。アプリを長時間プレイするとクラッシュする傾向があります。機器には、私が常に受け取っているメモリ警告の原因を追跡するのに役立つものはありません。これを行う他の可能な方法はありますか?明らかな理由でこれが起こらないことが非常に重要です。どんな助けでも大歓迎です。
1 に答える
0
実際、私の経験では、30MB のライブ バイトはそれほど小さなメモリではありません。IMO、大量のメモリを消費しても問題ありませんが、非常に短い時間であり、その後、より安全なメモリ占有レベルに戻ります (iPad1 に対処する場合は、10 ~ 15/20 MB にする必要があります)。
これは「放棄されたメモリ」、つまり、割り当てられていて、解放される可能性はあるものの、解放されることはない(または遅すぎる)メモリの場合に当てはまると思います。
この投稿を見て、あなたのケースに役立つスナップショットメモリ分析について学んでください。
もちろん、アプリが大量のメモリを必要とする可能性もあります (たとえば、処理するリソースが大きいため)。この場合、パスフォワードは必要なメモリを削減しようとします (これは、アプリが管理するデータ (ゲームの場合、たとえばアートワークに RGBA8888 の代わりに RGB565 形式を使用できます)。
さらに、Instruments でメモリ消費量が増加する特定のケースを突き止めることができる場合は、それらに取り組み、すべてのリークを削除したり、放棄されたメモリを削除したり、アプリのメモリ消費要件を最適化したりすることができます。
于 2012-10-13T07:05:07.823 に答える