1

Instruments Object Allocをチェックしているときに、CFArrayとCFStringの割り当てがすべて赤になります。

オブジェクトは生きているように見えますが、使用されていません。これは、ヒストグラムの使用された部分が、どちらの場合もヒストグラム全体(赤に変わった)の1/10であるためです。

このアプリは、7つのビューコントローラーを備えたフォトライブラリアプリケーションです。個々のビューコントローラごとにサムネイル画像をロードし、必要に応じて画像をロードします。2つのViewController間を行ったり来たりするだけで、CFArrayヒストグラムが押し上げられ続けます。

ここにコードを投稿することが役立つかどうか教えてください。

ありがとう、P

4

1 に答える 1

1

投稿コードは常に役立ちます。そのままでは、あなたの質問は非常に一般的であるため、答えも非常に一般的になります。

その音からすると、作成されている短命オブジェクトの数に驚いている状況ほど、必ずしもリークがあるとは思えません。

アプリのパフォーマンスに影響を与えている場合 (アプリの動作が遅い、または応答しない場合) は、さらに調査する価値があります。パフォーマンスの問題でない場合は、あまり心配しません (ただし、データ セットが大きくなるにつれて何が起こるかを検討します)。

これをさらに分析したい場合は、オブジェクトがどこから来ているのかを把握してください。インスツルメントは、割り当てポイントのバックトレースを提供します。出入りしたオブジェクトのランダムなセットを選択し、クリックして、そのオブジェクトのスタック トレースや割り当て関連のイベントを表示します。

同じスタックが頻繁に繰り返される場合は、アプリ内のメモリ チャターを減らす方法を理解するための非常に良い出発点になります。

そのスタック トレースは、新しい質問を作成したり、この質問を拡張したりするための非常に優れたコンテンツにもなります。

于 2009-08-14T15:37:51.203 に答える