当我们使用“--enable-precise-memory-info”打开Chrome时,为什么usedJSHeapSize总是会增加,即使我在页面中没有做任何事情?

时间:2016-11-29 20:39:30

标签: javascript google-chrome-devtools

我正在尝试使用javascript中的闭包和垃圾收集。获得有关内存的信息非常方便。我正在尝试使用delete[] ...,但我不知道:

  1. 为什么即使我在页面中没有做任何事情,输出也会不断增加?
  2. 为什么当我多次刷新页面时,初始输出略有不同? 3xxxxxx - >刷新 - > 4xxxxxx - >刷新 - > 6xxxxxx - > 3xxxxxx - 你看到了这种模式吗?这是否意味着,垃圾收集器被触发 - 让我们说 - 每3次刷新一次?我的怀疑是通过在加载时添加window.performance.memory.usedJSHeapSize来确认的。
  3. 如果您想使用我的简单教育工具,代码为at my github

1 个答案:

答案 0 :(得分:1)

  

为什么即使我在页面中没有做任何事情,输出也会不断增加?

如果使用"堆快照"比较堆快照?或捕获"分配时间表"来自"简介" webdev选项卡,您会看到在setTimeout回调期间,只会分配MemoryInfo的对象。

然后很明显 - var memory = window.performance.memory;语句会触发一个getter,每次都会返回一个必须分配的新对象。在回调之后,它将成为收集候选者。

enter image description here