javascript - 找出代码中哪一部分导致了 JS 中垃圾回收的最多

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

我有一个复杂的前端 Web 应用程序,我试图通过大量数据流对其进行优化。现在我看到大约 40% 的时间花在了使用 chrome profiler 进行垃圾收集上。有什么方法可以查看代码的哪一部分导致分配最耗费垃圾收集时间?

请注意,此问题并非特定于谷歌浏览器。我不介意使用其他工具来找出答案。

最佳答案

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

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

关于javascript - 找出代码中哪一部分导致了 JS 中垃圾回收的最多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075547/

相关文章:

javascript - 在 Javascript 中,是一堆小的 setInterval 循环还是一个大循环更快?

javascript - CSS 不会使用 Node.js 加载到我的 HTML 代码中

javascript - 修复谷歌浏览器上的蓝线

python - 如何在 Selenium Webdriver Python 3 中使用 Chrome 配置文件

Java GC 安全点

javascript - 如何迭代 WeakMap?

java - Java 应用程序中是否完全不存在内存泄漏?

javascript - 多次复制和更改 ID

javascript - 正则表达式 - 如果在大括号内则不匹配

javascript - 使用 JavaScript 打开 Chrome PDF 查看器对话