Chrome使用了JSHeapSize属性

Pet*_*zak 5 javascript performance memory-leaks google-chrome

首先,我浏览了互联网,发现它的记录非常糟糕.在我的代码的某处,我有一个很大的内存泄漏,我正在尝试跟踪和使用后:

window.performance.memory.usedJSHeapSize 
Run Code Online (Sandbox Code Playgroud)

看起来价值保持在10MB的同一水平,这是不正确的,因为当我们比较这里可见的值时:

chrome://memory-internals/
Run Code Online (Sandbox Code Playgroud)

或者如果我们在devTools中查看时间轴,我们可以看到很大的不同.有没有人遇到过类似的问题?我是否需要手动更新这些值(运行命令"更新","测量"等?)

遵循这个主题: 信息堆大小 看起来这个值增加了一定的步骤,我们能以某种方式看到它是什么或修改它吗?在我的情况下,从我现在看到的页面有大约10MB,30分钟后将有大约400MB,并在页面崩溃后半小时..任何想法的人?

(为什么代码泄漏它是一个不同的问题,请对待这个,因为我试图使用此变量来创建某种测试).

Mat*_*ley 5

WebPlatform.org 文档中有一部分对此进行了解释:

这些值被量化,以免将私人信息暴露给攻击者。如果 Chrome 运行时带有该标志,--enable-precise-memory-info则这些值不会被量化。

https://webplatform.github.io/docs/apis/timing/properties/memory/

因此,默认情况下,该数字并不精确,并且每 20 分钟才更新一次!这应该可以解释为什么您的号码没有改变。如果您使用该标志,则该数字将是精确且最新的。

WebKit提交消息解释道:

该补丁添加了一个选项,可以将量化和速率限制的内存
信息公开给网页。网页只能每 20
分钟学习一次新数据,这有助于减轻攻击者比较两个
读数以提取旁道信息的攻击。该补丁还只
报告 100 个不同的内存值,这(与速率
限制相结合)使得攻击者很难了解
内存使用的微小变化。