我的任务是评估遗留Web应用程序是否存在潜在的内存泄漏。 在使用Chrome DevTools做一些学习步骤时,我遇到了一个奇怪的行为,并想知道是否有人能够解释。
我的测试页面是一个非常简单的文档,只包含一个带有空src属性的iframe。
<!DOCTYPE html>
<html>
<head>
<title>emty iframe test</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css">
#report01 {
background-color:red;
}
</style>
</head>
<body>
<iframe id='report01' class='report' src='' width="1000" height="200"></iframe>
</body>
</html>
当通过内部iframe上的上下文菜单(“重新加载帧”)进行刷新时,在该页面上运行内存时间轴时,我看到DOM文档计数以及DOM节点计数不断上升。
我在时间线的末尾手动GC,但两个都没有计数回落到起始值。 我禁用缓存,而DevTools是开放的,以避免这方面的问题。我还试图应用'3快照'技术来找出发生了什么,但它给了我一个空的结果列表。
那么,为什么内存时间轴计数器会增加,而在逻辑上它不应该在这种情况下有任何泄漏?