我正在使用Chrome开发者工具中的"Profiles"选项卡记录内存堆快照。我的应用程序存在内存泄漏,因此我期望快照的大小逐渐增加,而它们确实是这样的。但由于我不理解的原因,第一个快照总是人为地很大...在第一次和第二次之间创建了似乎具有欺骗性的内存下降。所有随后的快照都像预期的那样逐渐增加。我知道在页面加载开始时通常会使用额外的内存,由于缓存和其他设置。但无论何时我拍摄第一个快照,情况都是相同的。它可能是页面加载后30秒或30分钟。同样的模式。我唯一的猜测是,分析工具本身以某种方式与内存交互,但这似乎有点牵强。这里有什么想法吗?
在 Chrome 进行内存快照之前,会尝试回收垃圾。但它并不完全回收,只进行预定义的几次遍历(这个神奇的数字 似乎是 7)。因此,在第一次快照被拍摄时,可能仍有未被回收的垃圾。 在进行第一次快照之前,请尝试转到“时间轴”选项卡并手动强制进行垃圾回收。 根据我的测试,这总是会减小第一个快照的大小。