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

And*_*rew 13 javascript browser memory-management

我有一个使用大量JavaScript的Web应用程序,旨在不间断地运行(几天/几周/几个月),而无需重新加载页面.

但是,几个小时后Chrome就崩溃了.Safari不会经常崩溃,但确实会大大减慢速度.

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

Joe*_*Joe 15

使用Chrome开发者配置文件工具,您可以快速了解使用CPU的内容并获取内存快照.

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

在此输入图像描述

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

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

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

也,

document.getElementsByTagName('*'); // a count of all DOM elements
Run Code Online (Sandbox Code Playgroud)

看看你是否正在稳步增加你的DOM元素会很有用.