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

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

>为什么即使我没有在页面中做任何事情,输出仍在增加
>为什么当我多次刷新页面时,初始输出略有不同? 3xxxxxx – >刷新 – > 4xxxxxx – >刷新 – > 6xxxxxx – > 3xxxxxx – 你看到了这种模式吗?这是否意味着,垃圾收集器被触发 – 比方说 – 每3次刷新一次?通过在加载时添加gc()来确认我的怀疑.

如果你想玩我简单的教育工具,代码at my github.

解决方法

Why the output keeps increasing even though I am not doing anything in the page?

如果使用“堆快照”比较堆快照或从“配置文件”webdev选项卡捕获“分配时间轴”,您会看到在setTimeout回调期间仅调用MemoryInfo的in对象.

然后它变得很明显 – var memory = window.performance.memory;语句触发一个getter,每次都返回一个必须分配的新对象.回调返回后,它是收集的候选人.

enter image description here

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...