5

Chromeのタイムラインビューを使用して、ページのメモリリークを追跡しようとしています。Webワーカーをインスタンス化した結果、特定のメモリリークが発生しましたが、これを取り除く方法がわからないようです。

ページを削除して、Webワーカーをロードするだけで、他には何もしません。ページを更新するたびに、Chromeのタイムラインビューのドキュメント数は永続的に1ずつ増加します。Workerコンストラクターへの呼び出しをコメントアウトしてページの更新を開始すると、ドキュメント数は増減し、実質的に同じままになります。ワーカーを手動で終了/閉じることで問題が解決することはありません(ただし、開発者ツールの[ソース]タブを見ると、ワーカーが消えていることがわかります)。

これが私のトリミングされた.htmファイルです。html/javascriptのこの短いチャンクだけで問題を再現することができます。

<html>
<script type="text/javascript">
var worker_blob = new Blob(["var test = 1;"]);
var worker_url = window.URL.createObjectURL(worker_blob);
// Comment out the line below and the memory leak goes away
var worker = new Worker(worker_url);
window.URL.revokeObjectURL(worker_url);
</script>
</html>
4

1 に答える 1

3

これはChromev25のメモリリークです。問題を再現できなくなったため、Chromev26で修正されたようです。

于 2013-03-29T23:09:24.840 に答える