私のアプリでは、ユーザーは画面に任意の数のオブジェクトを表示することを選択できます。表示される各ファイルは、ファイルからアーカイブ解除し、メモリに入れてから表示する必要があります。通常、許可されているオブジェクトの最大数が表示されている場合、アプリの合計メモリ消費量は約15MBに増加します。ホームボタンを押してアプリを一時停止してからアプリに戻ると、消費されるメモリは約6MBに減少します。すべてがまだ機能しています。オブジェクトはまだメモリ内にあります。これはどのように可能ですか?私はこれを実際のデバイスでテストしています。これはInstrumentsの問題ですか、それともアプリがバックグラウンドに移行したときに解放されるナビゲーションコントローラーで行われているキャッシュのようなものがありますか?これに光を当てるようなものなら何でも歓迎されます。
編集:
インストゥルメントの2つの「割り当て」ツールの違いに気づきました。アプリのプロファイルを作成するときに、「リーク」または「割り当て」を選択できます。リークを選択することで、メモリフットプリントの1つの測定値を確認できます。これは、約20MBでピークになります。割り当てを選択することで、メモリフットプリントの別の測定値がわかります。これは、巨大な230MBでピークに達します。明らかに、それぞれが測定しているものにはいくつかの違いがあります。どちらを見ればいいですか?私は常に「リーク」の割り当て測定を見てきました。
アプリの同じポイントで取得された最近の2つのプロファイルは次のとおりです。
「リーク」を使用すると、次の結果が得られます。
'Allocations'を使用すると、次の結果が得られます。
誰かがこの違いの背後にある意味を私に説明できますか?