2010-12-29 15 views
7

私は、UIWebViewを備えたグラフィックを中心としたiPadアプリを持っています。シミュレータ(iOS 4.2.1)を使用すると、私が閲覧するとReal Memの増加がかなりわかります。ブラウズするほど、使用するRAMが増えます。 UIWebViewを閉じて解放すると、一部ののメモリが解放されますが、すべてではありません。これは迷惑です。さて、それはすぐに割り当て解除されていない可能性があります。ファイン。しかし、私は、メモリ警告があるときにシステムが何らかのクリーンアップを行うと期待します。しかし、私は周りを参照し、UIWebViewを閉じて(それを解放する)、シミュレータでメモリ警告をトリガする場合、は変更されません! WTF?UIWebViewがそのメモリをすべて解放しないのはなぜですか?

これはなぜですか?なぜメモリをシステムに戻す際にUIWebViewがうまくいかないのですか?そしてなぜメモリの警告に反応するように見えないのですか?何か不足していますか?それが役立っているように見えたので、

+2

アクティビティモニタは、デバッグの目的では無用です。 Allocations Instrumentを使用します。シミュレータは、デバイス上のアプリとは大きく異なる動作をする可能性があることに注意してください。興味深いことに、 – bbum

+0

Allocations(過去に漏れを修正することに焦点を当てていましたが、これまで気づかなかったことは面白いです)を使用すると、数分の使用でOverall Bytesを最大256MBまで得ることができます。しかし、ライブバイトは4-7MBです。全体的なバイト数は累積ですか?私は簡単なチュートリアルを見つける必要があります... – theory

+0

ああ、TFMでそれを見つけました: "全体的に、解放されたものを含めて、割り当てられたこのタイプのオブジェクトまたはメモリブロックの総数。驚くばかり!私のアプリは結局、あまりメモリを使いません! – theory

答えて

6

答えとして追加:

アクティビティモニタは デバッグ目的のために無用です。割り当てを使用 計測器。シミュレータ は、デバイス上のアプリとは大きく異なる動作をすることがあります( )。

喜んで助けた。私はしばしば、「ライブ割り当てのみを追跡する」を有効にすることは、進行中のアプリケーションのワーキングセットを見るのに非常に役立つことがわかります。ライブ/デッドトラッキングも便利です。

Oh、およびheapshot analysis (article on my weblog)は、メモリリークの追跡に非常に効果的です。

漏れ?絶対に使用しないでください。ヒープショット分析は私にとってそれを完全に置き換えます。あなたのマイレージは異なる場合があります。

+0

ありがとうございます、それをチェックします! – theory

関連する問題