2011-12-19 7 views
1

私はInstrumentでメモリリークをチェックするためにiOSアプリケーションを解析しています。チェックするアロケーションおよび/またはリークを選択しました。未知のメモリリーク

アプリケーションが実行されると、All Allocationsは1.3MBまで増加します。ボタンをクリックしてからピッカーを表示し、アイテムを選択してピッカーを削除すると、All Allocationsが大きくなります。私は、REDバーがないので、明白なメモリリークがないことを確認しました。

手掛かりはありますか?私は多くの未知のMalloc 16バイトがあることを発見しました... Malloc 32バイト、...しかし、トレースを維持するための有用な情報はありません。

このような問題に対処する他の方法はありますか?

+0

あなたが「定常状態」に到達するまでのビューが作成される総ストレージは、時間の経過とともに成長し、キャッシュされた画像などのストレージは、あなたが繰り返したびに成長し続けている場合は、しかし、問題を抱えています同じ行動。 –

+0

私はViewControllerのアクティビティを最小限に抑えるためにいくつかのコードを指摘しました。 UIPickerViewを割り当ててself.viewに追加するためのボタンが押されました。同じボタンを押すと、UIPickerViewはself.viewから削除され、解放されます。私はHeapShotを服用し続けます。私はまだヒープ成長(時々、4xxバイト、2Kバイト...)があることがわかりました – SkyEagle888

答えて

1

使用Heapshot参照、メモリcreapを見つけるために:bbum blog

は、基本的にはこの方法は、ツールを割り当てる楽器を実行heapshotを取り、3または4回繰り返し、あなたのコードの直感と別のheapshotを実行することがあります。これは、反復中に割り当てられ、解放されないメモリを示します。結果を把握するために

は、個々の割り当てを参照して開示しています。

あなたが保持し、リリースおよび自動解放オブジェクトの使用機器で発生場所を確認する必要がある場合:楽器で

実行]を、割り当てに(このオプションを設定するには、記録を停止しなければならない上に「レコードの参照カウント」を設定)。ピッカーを実行し、録画を停止し、ivar(datePickerView)を検索し、ドリルダウンして、すべての保持、リリース、および自動リースが発生した場所を確認することができます。

enter image description here