検索属性がほとんどない単純な検索パネルと結果パネルを備えたアプリケーションを構築しています。結果パネルでは、Slickgridを使用して表形式でデータをレンダリングしています。
数回の検索 (サーバーへの AJAX 呼び出し) の後、ページが大量に読み込まれ、しばらくすると最終的にクラッシュします。メモリ リークの可能性がないか、DOM 数と JavaScript ヒープ使用量を確認しました。そこには何も問題はありませんでした。しかし、実験的なネイティブ メモリ プロファイラを実行したところ、「JavaScript 外部リソース」セクションで 600 MB 以上のメモリが使用されていることがわかりました。ガベージ コレクターを実行すると、数 MB にまで低下します。ここでいくつか質問があります:
- 「JavaScript 外部リソース」セクションに貢献するものは何ですか? サーバーから転送されるJSONデータ/JavaScriptソースに対応していると思いました。参考までに、サーバーからの gzip された JSON 応答は ~1MB です。
- ページをクラッシュさせるのではなく、Chrome が積極的にメモリを解放しないのはなぜですか? 繰り返しますが、ガベージ コレクターを手動で実行すると、「JavaScript 外部リソース」によって使用されたメモリが解放されます。
元の問題を修正するにはどうすればよいですか?