web-dev-qa-db-ja.com

Instruments ObjectAlloc:ライブバイトと全体のバイトの説明

私は、InstumentのObjectAllocツールを使用して、アプリケーション(iPhone)が実行しているメモリと、いつ、どこで実行しているかを理解しようとしています。

これらの統計の基本的な説明が本当に欲しいです。

  • ライブバイト
  • 生活

  • 一過性

  • 全体のバイト

アプリケーションが使用しているメモリ量を計算しようとすると、Live BytesまたはOverall Bytesを確認する必要がありますか?これにはリークしたメモリが含まれますか?一時オブジェクトとは何ですか?

ありがとう

86
Ross

ObjectAllocは、プログラムの実行中のすべてのメモリ割り当てと割り当て解除を追跡します。

Living bytes, or Net bytesは、タイムラインで選択した時点でアプリケーションが使用しているメモリ量です。リークされたメモリは割り当て解除されないため、リークされたメモリが含まれます。

#Livingは、特定のサイズ/オブジェクトタイプの割り当てが何回発生したか(およびまだ割り当てられているか)です。これは、リークを探すときに非常に便利です。

たとえば、アクションを繰り返し実行する場合(モーダルビューコントローラーから出てくるなど)、オブジェクトの#Livingが毎回同じ量だけ増加する場合は、おそらくそれらのオブジェクトがリークしている可能性があります。その後、ドリルダウンして、オブジェクトを割り当てているコードの正確な行を確認し、各オブジェクトが作成された時間インデックスを確認することでも確認できます。

Overall bytesは、リリースされたメモリを含みます。パフォーマンスの最適化のためにその数を追跡することは便利ですが、現在のメモリフットプリントを確認したり、リークを探したりするだけではありません。

110
Ken Aspeslagh

Apple docs。 ドキュメントへのリンク からの統計の説明

enter image description here

enter image description here

18
Pranav Jaiswal