我有这个复杂的前端Web应用程序,我正在尝试优化大量数据流。现在我看到使用chrome profiler在垃圾收集中花费了大约40%的时间。有没有办法看到代码的哪一部分导致分配最多的垃圾收集时间?
请注意,此问题并非特定于Google Chrome。我不介意使用其他工具来查找。
答案 0 :(得分:2)
您的代码很可能是实例化大量短期对象(DOM节点?)。在GC中花费的时间通常不取决于所收集的对象的类型,主要取决于它们的数量。
因此,您可以尝试获取并比较两个堆快照,以查看新分配列表中的主要对象类型。更多详细信息可以在https://developers.google.com/chrome-developer-tools/docs/heap-profiling#views_comparison找到(唯一的区别是您应该在[强制] GC完成后立即拍摄第一个快照,第二个快照在分配了大量堆时。)