jdw*_*jdw 16 javascript memory google-chrome-devtools
我注意到我在标题中提到的属性在我的页面中显着上升(特别是'(闭包)').
此操作系统和/或浏览器是否受控制?我可以做些什么吗?
究竟是什么(闭包),(数组),(编译代码),(系统)等?
另外,(数组)和'数组'有什么区别?
Phi*_*ley 16
关于你的问题:
问:究竟是什么(闭包),(数组),(编译代码),(系统)等?
Addy Osmani撰写的文章中的这段摘录可能会有所帮助:
(全局属性) - 全局对象(如"窗口")与其引用的对象之间的中间对象.如果使用构造函数Person创建对象并由全局对象持有,则保留路径将类似于[global]>(global property)> Person.这与标准形成对比,在标准中,对象直接相互引用.出于性能原因,我们有中间对象.Globals会定期修改,属性访问优化可以很好地解决非全局对象不适用于全局变量.
(根) - 保留树视图中的根条目是引用所选对象的实体.这些也可以是引擎为其自身目的而创建的引用.引擎具有引用对象的高速缓存,但是所有这些引用都很弱并且不会阻止对象被收集,因为没有真正强大的引用.
(闭包) - 通过函数闭包对一组对象的引用计数
(array,string,number,regexp) - 具有引用Array,String,Number或正则表达式的属性的对象类型列表
(编译代码) - 简单地说,一切都与编译代码有关.脚本类似于函数但对应于正文.SharedFunctionInfos(SFI)是站在函数和编译代码之间的对象.函数通常具有上下文,而SFI则不具有上下文.
HTMLDivElement,HTMLAnchorElement,DocumentFragment等 - 引用代码引用的特定类型的元素或文档对象.
完整的文章还有许多关于堆分析的宝贵信息:http://addyosmani.com/blog/taming-the-unicorn-easing-javascript-memory-profiling-in-devtools
而你的另一个问题是:
问:另外,(数组)和'数组'有什么区别?
根据Addy的描述,我的解释如下:( array)是具有引用实际Array的属性的对象(任何类型)的聚合.相反,Array是实际Array对象的列表.