关闭Chrome中的弹出窗口似乎不会释放内存

时间:2016-09-21 22:10:06

标签: javascript popup window

我在Chrome中看到了一些我想要验证的奇怪行为(或者可能是错误?)。以下是我采取的步骤:

  1. 首先,我打开了Chrome任务管理器,右键单击并选择了#34; JavaScript内存"
  2. 接下来,我导航到一个测试页面,该页面有一个链接,点击后会打开一个新的弹出窗口
  3. 弹出窗口加载包含许多大型第三方JavaScript库的页面
  4. 我检查了Chrome任务管理器,打开弹出框后,测试页面的JavaScript内存显着增加
  5. 最后,我关闭了弹出窗口并等待,但内存使用率基本保持不变。
  6. 如果我多次点击测试页面上的链接打开多个弹出窗口,关闭它们似乎不会降低内存使用量。

    我在IE和Firefox中尝试过这个测试,当关闭这些浏览器中的弹出窗口时,内存使用量会按预期下降。

1 个答案:

答案 0 :(得分:0)

首先,您确定了一个您认为导致泄漏的行动,这很棒!这是追踪问题的第一步,因为它为您提供了在之前/之后进行测试的特定方案。

由于您已经使用任务管理器确认内存未被释放,因此下一步是进行时间轴录制:

  1. 在发生泄漏的页面上打开您的应用程序并启动DevTools
  2. 转到DevTools中的时间轴选项卡,然后单击开始录制;另外,按下"垃圾"图标现在,以确保在录制之前触发垃圾收集
  3. 在应用程序中,打开对话框然后关闭它;你也可以多次这样做
  4. 返回DevConsole,点击"垃圾"再次显示图标然后停止录制
  5. 你看到了什么?你是否在Memory Lane中看到它永远不会发生?或者最后的记忆与你开始时的记忆相同?

    请务必查看official DevTools documentation以获取有关使用时间轴和其他工具查找常见内存泄漏的详细信息。