0

このメモリリークがどこから来たのか、私にはまったくわかりません。右側のリンクはどれも、それを私のコードの一部にたどりません。これの原因や追跡方法を知っている人はいますか?

*コードがロードされた直後に発生します

ここに画像の説明を入力

4

2 に答える 2

2

すべきではありません。「リークした」メモリは 1k 未満です (実際にはリークしていない可能性があります。リーク検出器は完全ではありません)。ココア自体に小さな漏れ、漏れと思われる小さなものがあります。

探したいのは、大きなリークまたは定期的に繰り返されるリークです。たとえそれがあなたのせいであったとしても(おそらくそうではないかもしれません)、1kのメモリを追い求めることは、努力する価値がありません。

問題を示す小さなプログラムを作成できる場合は、レーダーを開く価値があります (bugreport.apple.com)。Apple が小さなリークをすべて取り除き (すべてのプログラムに影響を与えるため)、Instruments を修正して誤検知をより適切に除外するようにすることは、Apple にとって良いことです。しかし、単一のプログラムの場合、メモリのすべてのバイトを追跡するのはリソースの適切な使用ではありません。

于 2012-07-13T18:48:13.600 に答える
2

問題を追跡する最善の方法は、コードに NSLog ステートメントとブレークポイントを散らかすことです。どの行が問題を引き起こしているかを見つけて、それを修正する方法を考え出してください (これはトリッキーなビットです)。他の API を使用している場合、その中にリークがある可能性がありますが、おそらくほとんどありません。コードがリークしている可能性が高いため、最終的には追跡して見つけることができるはずです。少し遅いプロセスです。

于 2012-07-13T18:49:35.783 に答える