Chrome开发工具的第一个内存堆快照非常大

时间:2016-01-28 17:48:10

标签: google-chrome memory memory-leaks google-chrome-devtools

我正在使用Chrome开发者工具中的“配置文件”标签来记录内存堆快照。我的应用程序有内存泄漏,所以我希望快照的大小逐渐增加,他们这样做。但由于我不明白的原因,第一个快照总是人为地大...在第一个和第二个之间创建一个看似具有欺骗性的内存下降。所有后续快照都按预期逐渐增加。

我知道由于缓存和其他设置,在页面加载开始时经常使用额外的内存。但无论何时拍摄第一张快照,都会发生同样的事情。可能是页面加载后30秒或30分钟。相同的模式。我唯一的猜测是它自己的配置文件工具以某种方式与内存交互,但这似乎是一种延伸。

有什么想法在这里发生了什么?

enter image description here

1 个答案:

答案 0 :(得分:2)

在内存快照拍摄之前,Chrome会尝试收集垃圾。它并没有彻底收集它,它只进行预定义的通过次数(这个幻数seems to be 7)。因此,当拍摄第一张快照时,仍然可能会留下一些未收集的垃圾。

在制作第一张快照之前,请尝试前往"时间轴"选项卡并强制手动垃圾收集。

Forcing garbage collection in Chrome DevTools

从我测试的内容来看,这总是会缩小第一张快照的大小。

Memory snapshots