测量网页的内存使用情况

7
我试图用Chrome开发者工具中时间轴标签的内存部分来测量我的网站的内存使用情况。在不同的时刻,我会点击垃圾桶按钮来强制进行垃圾回收。问题是,图表突然变得无力,并停止所有测量。最终,在我开始做其他事情之后,它又开始测量,但我从未看到我点击GC按钮的图表上的确切位置/值。
问题是:
有没有办法强制这个图形保持或开始测量?或者,是否有一种简单的方法在JavaScript中console.log当前内存使用值?
作为相关的问题,有没有办法指向图表上的一个点并查看该点的确切内存使用情况?

1
你可以通过控制台使用 performance.memory 来获取当前的内存使用情况。 - bfavaretto
好的 - 谢谢。您介意将其添加为答案,@bfavaretto吗? - Adam Rackis
@bfavaretto - 还有,你知道为什么 performance.memory 给我返回的都是零吗? - Adam Rackis
我不知道,这是这个页面给我的信息:MemoryInfo {jsHeapSizeLimit: 793000000, usedJSHeapSize: 10000000, totalJSHeapSize: 17100000}。实际上我对此并不了解,也不熟悉时间轴工具。这就是为什么我只添加了一条评论,可能有更好的答案... - bfavaretto
1个回答

5
时间轴记录在渲染器端发生的事件。每个事件记录还有一个“内存使用”字段。时间轴使用这些数字来绘制内存图表。因此,如果在某个时间间隔没有事件,则内存图表将不显示任何内容。
从另一方面来看,如果渲染器什么都不做,则内存大小不会改变。
如果您绝对确定需要内存数据,则可以设置一个不执行任何操作的定时器。
例如,您可以在控制台中执行 setInterval(function() {}, 1000);。在这种情况下,时间轴将获取带有内存使用数据的计时器事件,并绘制内存图表。

谢谢你的回答。不幸的是,由于某种原因,一旦我点击垃圾回收按钮,似乎图表就完全停止响应了 - 即使有setInterval在其中。 - Adam Rackis
听起来像是一个 bug。你能提供页面链接或者简化的测试用例吗? - loislo
你使用的是哪个版本的Chrome浏览器? - loislo
请尝试使用开发者频道或甚至金丝雀版本。 - loislo
金丝雀版本可以与其他版本并行安装。 - loislo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接