如何衡量内存使用率和效率?

时间:2011-09-19 15:25:31

标签: javascript browser memory-management

我有一个使用大量JavaScript的网络应用,可以在不重页加载的情况下不间断运行(几天/几周/几个月)。

然而,几个小时后Chrome就崩溃了。 Safari不会经常崩溃,但确实会大幅减速。

如何检查问题是否与我的代码或浏览器本身有关?我该怎么做才能解决这些问题?

2 个答案:

答案 0 :(得分:15)

使用Chrome Developer Profile Tools,您可以快速了解使用CPU的内容并获取内存快照。

拍摄2张快照。选择第一个并切换到比较,如下所示

enter image description here

三角形列是数学符号delta或change。因此,如果您的增量是正数,那么您将在内存中创建更多对象。然后,我会在一段时间后拍摄另一张快照,比如5分钟。然后再次比较结果。查看 delta

如果您的增量不变,那么您在内存管理方面做得很好。如果是否定的,那么您的代码就是干净的,并且您可以正确地收集使用过的对象,这也是一个很好的工作。

如果你的增量继续增加,你可能会有内存泄漏。

此外,

document.getElementsByTagName('*'); // a count of all DOM elements

有助于了解您是否正在稳步增加DOM元素。

答案 1 :(得分:1)

Chrome也有“about:memory”页面,但我同意IAbstractDownVoteFactory - 开发人员工具是要走的路!