2013-11-27 5 views
21

私は明らかにUIWebViewで動作するアプリケーションのブラウザ機能を構築しています。JSガベージコレクタとWebCore VM

Leaks profiling

VM:JSガベージコレクタVMブラウザが理にかなって開いたとき、私はしかし、私はリークプロファイルの間にいくつかの厄介な結果を見ている、メモリジャンプアップを見てきました: WebCoreの浄化可能なデータは私がより多くを登っています。さらに悪いことに、ブラウザの割り当てが解除され、Webビューが解放されると、これらのオブジェクトはまだ6 MB以上のメモリを占有しています。

私はUIWebViewを正しく処理していないのですが、UIWebViewの割り当てが解除された後でこのメモリに保持されている問題があるようです。

私はこの投稿http://www.codercowboy.com/code-uiwebview-memory-leak-prevention/でブラウザが割り当て解除される前にいくつかのクリーンアップを実行しますが、これは何の違いもないようです。

誰でもこの問題がありましたか?どんな洞察も素晴らしいだろう。 UIWebViewのメモリの問題に関連するいくつかの質問がありましたが、プロファイルの結果を具体的に詳述していません。

+5

私もそれを見ています。 –

+0

私は同じ問題、iOS 7.1も見ています。 https://bitbucket.org/tassinari/mtwebviewtest私はバグも提出しています。http://www.openradar.me/radar?id=5869182600085504 – tassinari

答えて

1

私はすぐにこれを問題とみなすのかどうかは分かりません。これらのVMは、ビュー階層にWebビューを追加し、そのビューで要求をロードするときにのみ開始されます。

これらのリソースを再び使用する場合に備えて、そのリソースを有効に保つことができるのはOSだけかもしれません。

データをクリーンアップし、50%の低下を示したコードを複製しようとしました。

JSのガベージコレクタが3メガバイトの最小付近で常にだったが、8メガバイト WebCoreのパージ可能なデータの最大値を持っていたが約700キロバイト

あなたは、これが生き続けて悪いJavaScriptに関連する可能性があることも考慮することで常にでしたJavaScriptコードのリークが原因です。

+3

メモリ使用量が増えていくシナリオユーザーは、それを止める方法なしで、やりとりを続け、私はかなり深刻な問題を考慮する。 3 MBは、特に効果的に何もしていないときは、モバイル世界では大量のメモリです。それを処分する方法があれば、私はそれをしたいと思います。 – Aron

+0

私はシミュレータで何かを試してみました。ウェブビューを解除した後にメモリ警告を送りました。あなたが言及した両方のVMで合計メモリを2.1MBに削減しました。 私たちはWebリソースについて話しているので、あまりにも多くのメモリを食べ始めるとメモリ使用量を減らす方法があるかどうかはわかりません。私たちはネイティブリソースで持っている種類のメモリ管理オプションを持っていません。 –

関連する問題