垃圾回收制度主要是通过标记清理和引用技术的方式进行管理
1.标记清理:
当变量进入上下文的时候,,比如在函数中声明一个变量,这个变量会存在于上下文中的标记,从逻辑上讲不应该释放它们,因为上下文中的代码可能会用到这些变量,当变量离开上下文是,会被加上离开上下文的标记。在来及回收程序中,会标记内存中存储的所以变量,然后会讲所以的上下文变量,以及上下文中变量引用标记去掉。在此之后会标记的变量就是待删除的
2引用技术
引用技术就是对每个值都记录它被引用的次数,声明变量并且给它赋一个引用值,这个引用值就是1,如果同一个值又被赋给另外一个变量,那么引用数加1,如果保存对该值引用变量被其他的值赋盖,那么引用计数减1,当一个引用技术为0时,就说明无法再访问这个值,因为被安全回收了
引用技术的问题
1.当两个对象之间相互引用的时候,引用计数不能变成0,如果对此执行,那么导致大量内存没有释放
2.一个DOM对象和一个原生JavaScript对象之间制造循环引用,由于循环引用,导致DOM元素的内存不能被释放掉。因为再原生DOM对象和JavaScript对象之间不能够建立连接,如果建立连接,需要手动释放
js垃圾回收
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...