2012-02-23 10 views
7

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]

+0

私はこの問題をMobile Safariがどのように処理するのかを調べようとしています。 otoolでシンボルテーブルをインポートする方法はありますか? otool -ovこのアプリケーションで定義されているすべてのシンボルを印刷しますが、このアプリケーションが他のダイナミックライブラリからリンクされていることを知りたいと思います。 class-dump-zを使ってすべてのヘッダファイルをダンプしますが、有用な情報は得られません。 –

+0

実際の問題は、CoreGraphicsのdraw_glyphsです.CGFontCreateGlyphBitmapの後に、ビットマップがキャッシュされ、キャッシュを制御することはできません。それは漏れではありませんが、iPad1上では本当に私のアプリケーションのための問題です(テキストがたくさんあります) –

+1

あなたはこれに対する答えを見つけましたか?私はまた、UIWebViewフォントメモリの問題を回避しようとしています。 –

答えて

0

本番アプリケーションでも同様の問題が発生しました。私は繰り返し、明確なWeb表示は、(ロード「<HTML> </htmlの>」)、その後のUIWebViewで、次のURLをロードするバグの削減を作成:

http://typecast.com/preview/google/Mr%20Bedfort/Sigmar%20One/Miss%20Fajardose 

これは確実に約180の後にアプリケーションがクラッシュロードする。私は問題のID 15659596としてAppleにこれに関するバグレポートを提出しました。私は応答を待っています。

しかし、私はまだこれが正確に起こっているのか、そうでないのかはっきりしていません。 "などの用語のために我々のアプリケーションでは野生で

  • Googleイメージ検索を問題を観察

    1. 同じWebコンテンツ:もちろん、それはそのURLのために起こりますが、私も同じ手順をテストしてみました猫 "と"犬 "。

    これらの両方のシナリオでは、問題は表示されません。私は長期的なメモリ使用量の増加は見られず、アプリケーションはクラッシュしません。

    私はあなたに答えがありませんが、問題はUIWebViewに存在し、Appleに報告しており、Webフォントに関連しているようです。