找出代码的哪一部分导致JS中的大部分垃圾收集

时间:2013-09-29 07:26:38

标签: javascript google-chrome garbage-collection google-chrome-devtools chromium

我有这个复杂的前端Web应用程序,我正在尝试优化大量数据流。现在我看到使用chrome profiler在垃圾收集中花费了大约40%的时间。有没有办法看到代码的哪一部分导致分配最多的垃圾收集时间?

请注意,此问题并非特定于Google Chrome。我不介意使用其他工具来查找。

1 个答案:

答案 0 :(得分:2)

您的代码很可能是实例化大量短期对象(DOM节点?)。在GC中花费的时间通常不取决于所收集的对象的类型,主要取决于它们的数量。

因此,您可以尝试获取并比较两个堆快照,以查看新分配列表中的主要对象类型。更多详细信息可以在https://developers.google.com/chrome-developer-tools/docs/heap-profiling#views_comparison找到(唯一的区别是您应该在[强制] GC完成后立即拍摄第一个快照,第二个快照在分配了大量堆时。)