js的垃圾回收机制

一、垃圾回收机制存在的原因

1.解释器:

javascript代码由解释器执行,解释器包含在浏览器中。

2.内存泄露:

由于某些原因导致已分配的内存未释放或无法释放,造成内存浪费,运行速度降低,甚至系统崩溃。

3.内存的分配:

当定义一个变量的时候,解释器会自动为该变量分配存储单元,但是如果只分配不释放,当越来越多的变量被定义时,会造成内存泄漏。所以JavaScript的解释器需要自动释放内存,防止内存泄露。

二、垃圾回收方式

1.标记清除法

(1)标记阶段:当变量进入环境时,就给变量做进入标记;如:“它进入了环境哦”。
(2)清除阶段:当变量离开环境时,就给变量做清除标记;如:“它离开了环境哦” ;当变量被标记了“离开”时,就说明无法访问该变量了,因此就可以将其所占的空间收回来。

2.引用计数法:

跟踪记录每个值的被引用的次数。声明一个变量并将一个引用类型赋值给该变量,这个值的被引用数就加1;相反,如果引用该值的变量转而去引用其他值,那么该值的被引用次数将会减1。如果该值的被引用次数为0,就说明无法访问该值了,因此就可以将其所占的空间收回来。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容