私は、InstumentのObjectAllocツールを使用して、アプリケーション(iPhone)が実行しているメモリと、いつ、どこで実行しているかを理解しようとしています。
これらの統計の基本的な説明が本当に欲しいです。
アプリケーションが使用しているメモリ量を計算しようとすると、Live BytesまたはOverall Bytesを確認する必要がありますか?これにはリークしたメモリが含まれますか?一時オブジェクトとは何ですか?
ありがとう
ObjectAlloc
は、プログラムの実行中のすべてのメモリ割り当てと割り当て解除を追跡します。
Living bytes, or Net bytes
は、タイムラインで選択した時点でアプリケーションが使用しているメモリ量です。リークされたメモリは割り当て解除されないため、リークされたメモリが含まれます。
#Living
は、特定のサイズ/オブジェクトタイプの割り当てが何回発生したか(およびまだ割り当てられているか)です。これは、リークを探すときに非常に便利です。
たとえば、アクションを繰り返し実行する場合(モーダルビューコントローラーから出てくるなど)、オブジェクトの#Living
が毎回同じ量だけ増加する場合は、おそらくそれらのオブジェクトがリークしている可能性があります。その後、ドリルダウンして、オブジェクトを割り当てているコードの正確な行を確認し、各オブジェクトが作成された時間インデックスを確認することでも確認できます。
Overall bytes
は、リリースされたメモリを含みます。パフォーマンスの最適化のためにその数を追跡することは便利ですが、現在のメモリフットプリントを確認したり、リークを探したりするだけではありません。
Apple docs。 ドキュメントへのリンク からの統計の説明