iPhone向けのゲームを制作中です。開発が完了し、ゲームをメモリ用に最適化しようとしています。ゲームで特定の MVC をロードして閉じると、割り当てられたメモリのすべてが解放されるわけではないことに気付きました (~ 4-5MB が追加されます)。これにより、15 ~ 20 分間プレイし続けると、ゲームのメモリ使用量が非常に高くなり、メモリ不足の警告が表示された後にゲームが最終的にクラッシュします。
1. ゲームで静的アナライザーを
実行し、すべてのメモリ リークと警告を修正しました。
2. すべてのクラスの dealloc が呼び出されているかどうかを手動で確認しました。これでよさそうです。
3. また、Xcode で Allocations ツールを実行しようとしましたが、そのエントリのほとんどは CFStrings、mallocs、CFNumbers などですが、どのクラスから発信されたものかわかりません。割り当てツールを使用するより良い方法はありますか?
メモリ関連の質問もいくつかあります
。 1. 自動解放プールを使用せずに、ゲーム内の多くの場所で自動解放オブジェクトを使用しています。私の理解では、自動解放されたオブジェクトは次の実行ループで解放されるべきであり、そのような大きな問題を引き起こすべきではありませんか?
2. また、xib ファイルを介して画像をロードすると、iOS によってキャッシュされます。彼らもメモリをむさぼり食うのだろうか?
メモリ使用量の問題を解決するにはどうすればよいですか。どんな助けでも大歓迎です。ありがとう!