InstumentのObjectAllocツールを使用して、アプリケーション(iPhone)が実行しているメモリと、それを実行している時間と場所を理解しようとしています。
これらの統計の基本的な説明が本当に必要です。
- ライブバイト
- #生活
- #Transitory
- 全体のバイト数
アプリケーションが使用しているメモリの量を計算しようとしているとき、ライブバイトまたは全体のバイトを確認しますか?これには、リークされたメモリが含まれますか?一時的なオブジェクトとは何ですか?
ありがとう
InstumentのObjectAllocツールを使用して、アプリケーション(iPhone)が実行しているメモリと、それを実行している時間と場所を理解しようとしています。
これらの統計の基本的な説明が本当に必要です。
アプリケーションが使用しているメモリの量を計算しようとしているとき、ライブバイトまたは全体のバイトを確認しますか?これには、リークされたメモリが含まれますか?一時的なオブジェクトとは何ですか?
ありがとう
回答:
ObjectAlloc
プログラムの実行中に、すべてのメモリ割り当てと割り当て解除を追跡します。
これLiving bytes, or Net bytes
は、タイムラインで選択したときにアプリケーションが使用しているメモリの量です。リークされたメモリの割り当てが解除されることはないため、これにはリークされたメモリが含まれます。
#Living
特定のサイズ/オブジェクトタイプの割り当てが発生した(そしてまだ割り当てられている)数です。これは、リークを探すときに非常に役立ちます。
たとえば、アクションを繰り返し実行し(モーダルビューコントローラーから出るなど)、#Living
オブジェクトのアクションが毎回同じ量だけ大きくなることがわかった場合は、それらのオブジェクトがリークしている可能性があります。次に、ドリルダウンしてオブジェクトを割り当てているコードの正確な行を確認し、それぞれが作成された時間インデックスを確認することで確認できます。
Overall bytes
解放されたメモリが含まれます。パフォーマンスを最適化する目的でその数を追跡することは有用ですが、現在のメモリフットプリントを確認したり、リークを探したりするだけの場合はそうではありません。