这里我在chrome dev工具中拍摄了两个堆快照并将其切换为“比较模式”,这样我就可以看到两个快照之间的增量:
请注意,第一个堆快照是92.3mb,第二个是275mb(如左边的“快照1”和“快照2”所示)。这是一个 182.7mb 的大小增加。
在最右边的列中,列出了每个构造函数的大小增量(以字节为单位)。如果我们总结这些,我们会净增加 500kb 。
怎么会这样?大小增量总和不应该与快照之间的大小差异相同吗?如果您查看“比较视图”部分中的chrome heap snapshots tutorial,则会有一个屏幕截图显示您的期望:更改的大小增量总和是快照大小。
注意:我实际上使用的是nodejs的--inspect
选项,所以这不是常规的chrome devtools,但看起来它基本上是相同的软件(由同一个团队维护),只是略有适应nodejs,所以我通过不标记nodejs等保持一般性。
编辑1:我从评论中点击了@ wOxxOm的建议(快照前点击垃圾箱图标)并获得了60mb快照与300mb快照,但是当我点击模式下拉列表并选择“比较“为了获得增量,我收到了这条消息(您可能需要在新标签中打开图像才能阅读):
我开始认为这可能与nodejs有关,看起来这不仅仅是我对DevTools的误解,所以我会添加一些额外的细节,这可能是发生了什么的线索: