现在,当您将鼠标悬停在选项卡标题上时,Chrome 选项卡会显示该选项卡使用的活动内存;请参阅此处了解详细信息。
Chrome 还允许我们在 Devtools 的“内存”面板中获取有关内存使用情况的更多详细信息,其中提供了(不断更新的)JS 堆大小。我还可以从“内存”面板中获取堆快照,并且可以看到堆快照的大小。
我发现 JS 堆大小和堆快照大小彼此在同一范围内,但选项卡使用的活动内存(通常)明显更高。
例如,在https://example.com/上,在一次特定负载中,我的选项卡内存使用量为 23.8 MB:
作为比较,JS 堆大小为 1.1 MB(见底部):
快照大小也是 1.1 MB(见左栏)
对于上下文,example.com 是一个非常小的页面,大小约为 1 KB,它在单个屏幕上呈现,无需滚动(请参见上面的第一个屏幕截图)。
我还注意到,在内存压力(例如,如果我打开很多选项卡)或背景(例如,我离开选项卡一段时间)下,选项卡内存使用可以稍微调整一下,但我很少看到它一直下降以匹配堆大小或堆快照大小。
那么,是什么导致活动选项卡内存使用量更大,我们如何才能更好地了解页面结构和内容的哪些方面对其产生影响,以及活动选项卡内存使用量超过堆大小是否会导致溢出-内存问题?
注意:我从/sf/ask/5328910751/了解到,Safari 通过其图层提供了有关与渲染/绘画相关的内存使用的更多信息面板,但我在 Chrome Devtools 的等效图层面板中没有看到任何有关内存使用的信息。