我有一个复杂的前端 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/