UIwebviewがdealloc-edを取得したときに、使用されたメモリのほとんどが完全にリサイクルされないことがわかりました。いくつかのプロファイルを実行した後、私はまだ生きているメモリのほとんどがフォントグリフキャッシュであることを発見しました(中国語のWebページを開いていると問題がさらに深刻です。Font Glyph/UIWebViewのメモリリーク
キャッシュを制御する方法はありますか?私はiOS Webブラウザで作業しています。この問題は2週間ブロックされます。
Attachedは簡単なデモです。 1)メモリ「割り当てプロファイル」を使用してデモを実行します。 2)アドレスバーにhttp://www.163.comを入力し、読み込みが完了するのを待ちます。 3)計測器ツールで消費された約10Mのメモリを見ることができます。 4)クリアボタンをクリックしてください(UIwebviewはビジュアルツリーから削除され、リサイクルされます) 5)まだ9Mのメモリが生きています。
問題を切り分けるために、以下のコードでは、NSURLCacheを無効にしました。 [NSURLCache sharedURLCache] setMemoryCapacity:1]
私はこの問題をMobile Safariがどのように処理するのかを調べようとしています。 otoolでシンボルテーブルをインポートする方法はありますか? otool -ovこのアプリケーションで定義されているすべてのシンボルを印刷しますが、このアプリケーションが他のダイナミックライブラリからリンクされていることを知りたいと思います。 class-dump-zを使ってすべてのヘッダファイルをダンプしますが、有用な情報は得られません。 –
実際の問題は、CoreGraphicsのdraw_glyphsです.CGFontCreateGlyphBitmapの後に、ビットマップがキャッシュされ、キャッシュを制御することはできません。それは漏れではありませんが、iPad1上では本当に私のアプリケーションのための問題です(テキストがたくさんあります) –
あなたはこれに対する答えを見つけましたか?私はまた、UIWebViewフォントメモリの問題を回避しようとしています。 –