2009-07-14 11 views
1

alt text http://img263.imageshack.us/img263/1880/leak.jpg ここは私の問題です。あなたがメモリリークはないが、それでも表示される場合、私は一般的なブロックのメモリリークを取得します。私がそれをクリックすると、メモリリークが石英コアに起因する場合、次のような詳細が得られます。私はリークバーに漏れが見えないので、どこが間違っているのか分かりません。あなたが「リーク」を参照理由は自動解放プールに割り当てられたオブジェクトであるかもしれないことを念頭に置いて私の記憶はどこで消費されますか

alt text http://img263.imageshack.us/img263/6813/leak2.jpg

+0

大きな(高解像度の)画像を提供できますか?あなたのコメントが参照している要素を確認することはできません。 –

+0

plz今すぐ教えてください –

+2

これはこのトピックについて投稿した3番目の質問です。より多くの情報を提供するたびに新しい質問を作成するのではなく、1つの質問で提供する必要があるすべての情報を統合すると、より注意を促し、より簡潔な回答を得ることができます。 – Jasarien

答えて

2

ベア。 Three20のようなライブラリは、イメージキャッシングにとって特に好都合です。そうである場合、問題のメモリは、それが直接的に必要となるまで解放されない(すなわち、自動解放ドレイン)。

あなたのアプリを引き続き使用している場合、クラッシュするまで、安定したメモリ使用量が増えていますか?それとも、鋸歯状のように見えますか?つまり、上がってから突然下がり、再び上がってきますか?

+0

私の心配は何ですか、私は登りを見ていますのこぎりではない。メモリリークのない登山が反映されています。しかし、メモリキーピングは上昇しています。 –

0

これは、自動解放プールが拡張され、排水されない場合のようです。アプリの詳細を知らなくても何もお勧めできません(複数の画面や表を使用するか、単一のペインのユーティリティやゲームなど)

あなたのアプリでは、たとえば、単一のタスクを実行する場合など、新しい自動解放プールを作成し、そのタスクの期間中のみ使用してからプールを解放します。これにより、全体のメモリを節約し、リソースの管理を強化できます。

たとえば、モーダルビューやツリービューをカスケードする場合など、複数のビューコントローラを使用する場合は、新しいビューのコントローラを作成できますが、ビューコントローラにデリゲートを設定して、作業が完了するので、コントローラー全体を表示したり、表示したりするのではなく、表示することができます。

最後に、大量のイメージを扱う場合は、メモリ内に固定された数のメモリスロットを持つファイルシステムベースのキャッシュメカニズムを作成して、絶対に必要なメモリ内のデータのみを保持することができます。

関連する問題