最近、メモリ不足の例外が原因でアプリがアプリストアから拒否されました。アプリはメモリをリークしませんが、そのベースメモリフットプリントが高すぎるようです。Appleから送信されたクラッシュログによると、メモリ内で約14000ページを使用していました(主に巨大なテクスチャが原因です)。しかし、2つの奇妙なことがありました:
- 送信する前に5つのデバイスで厳密にテストしましたが、いずれのデバイスでもこのクラッシュは発生しませんでした。
- 拒否後にテクスチャを最適化し、元のサイズの約半分にしました(テクスチャメモリ消費量)。
Appleと同じクラッシュを再現できない限り、アプリが現在何ページを使用しているかを知る方法はありません(これは不可能でした)。アプリのメモリフットプリントを確認して、アプリが十分に最適化されていることを確認できる別の方法はありますか。
インストゥルメントを試しましたが、XCodeを実行しようとするとアプリがクラッシュします(XCodeに問題があるはずです)。しかし、iPhone/iPodで直接実行すると完全に機能します。iPhoneで私のアプリのメモリフットプリントを見つけるのに役立つものがあれば(Windowsのタスクマネージャーに類似したものがある場合)、いただければ幸いです。
ありがとう
編集:
XCodeからアプリを起動すると、コンソールに次のエラーが表示されます。「リモートプログラムの起動中にエラーが発生しました:プロセス553のタスクを取得できませんでした。」
Activity Monitorを使用してアプリを起動すると、次のエラーが発生します:「ターゲットが終了するのが早すぎてデータを収集できません」
EDIT2:
配布プロファイルの代わりに開発プロファイルを使用することで、ActivityMonitorでアプリを実行できました。しかし、現在、Activity Monitorにはいくつかのセクションがあります-使用される物理メモリ、実メモリ、仮想メモリ。これらのどれを私は考えますか。要約すると、これらのどれがiPhoneに低メモリ例外をスローさせるのかを知る必要があります。