我有一个使用大量JavaScript的网络应用,可以在不重页加载的情况下不间断运行(几天/几周/几个月)。
然而,几个小时后Chrome就崩溃了。 Safari不会经常崩溃,但确实会大幅减速。
如何检查问题是否与我的代码或浏览器本身有关?我该怎么做才能解决这些问题?
答案 0 :(得分:15)
使用Chrome Developer Profile Tools,您可以快速了解使用CPU的内容并获取内存快照。
拍摄2张快照。选择第一个并切换到比较,如下所示
三角形列是数学符号delta或change。因此,如果您的增量是正数,那么您将在内存中创建更多对象。然后,我会在一段时间后拍摄另一张快照,比如5分钟。然后再次比较结果。查看 delta
如果您的增量不变,那么您在内存管理方面做得很好。如果是否定的,那么您的代码就是干净的,并且您可以正确地收集使用过的对象,这也是一个很好的工作。
如果你的增量继续增加,你可能会有内存泄漏。
此外,
document.getElementsByTagName('*'); // a count of all DOM elements
有助于了解您是否正在稳步增加DOM元素。
答案 1 :(得分:1)
Chrome也有“about:memory”页面,但我同意IAbstractDownVoteFactory - 开发人员工具是要走的路!