Javascript 引用计数法的原理和优缺点

2021-08-12  本文已影响0人  喜悦的狮子

引用计数法是什么?

引用计数法是GC算法之一。GC算法是内存管理中,垃圾回收器完成垃圾回收,从查找垃圾、释放空间到回收垃圾的一种规则。

内存管理

开发者主动申请空间、使用空间和释放空间。

申请空间

let obj = {}

使用空间

let obj.name = 'stone'

释放空间

let obj = null

以下就完成了一次内存管理,如果没有空间释放内存就会泄漏。

垃圾回收

Javascript 中的内存管理是自动的,对于一个对象来说如果它不再被引用,或者因为一些不当的逻辑操作以至于不能在根上访问到的时候,它就是垃圾。

(所谓根就是全局变量对象,访问的方式可以是通过引用,又或者是作用域链。)

当发现垃圾的时候,Javascript 执行引擎就会过来把垃圾所占的对象空间回收。

引用计数法的原理

引用计数算法的原理是设置一个引用数,判断当前引用数是否是0。

代码中有一个对象空间,多了一个变量名指向它,引用计数器就为它的引用数 + 1,减b少一个引用引用计数器就为它的引用数 - 1, 一旦引用数变为 0, 该对象空间就会被认为是垃圾,然后被回收。

引用计数算法的优点

引用计数算法的缺点

function fn() {
    const stone1 = {}
    const stone2 = {}
    stone1.name = stone2
    stone2.name = stone1
fn()
上一篇 下一篇

猜你喜欢

热点阅读