美文网首页
JavaScript中的垃圾回收

JavaScript中的垃圾回收

作者: 晴雨稀兮 | 来源:发表于2020-03-19 13:43 被阅读0次

垃圾回收概述

  • JavaScript具有垃圾自动回收机制
  • 原理是:找出不再使用的变量,释放其内存空间,为此垃圾回收器会周期性的进行垃圾回收。

垃圾回收策略

在JavaScript中,垃圾回收有两种策略:

标记清除;

引用计数

1. 标记清除

标记清除是目前主流的垃圾回收机制,它的原理是,将当前不再使用的变量加上标记,然后回收其内存;比如一个位于函数中的局部变量,在进入函数时,给加上进入函数的标记,再函数执行完毕时,加上出函数的标记,由此,被加了出函数标记的变量,就是要被回收的变量;

2. 计数引用

引用计数的原理是:查看变量被引用的次数,如果变量被引用的次数是0,则此变量就要被回收。但是引用计数的变量在两个变量相互引用时存在循环引用的bug,解法是主动去接触变量,比如

// 循环引用
var element = document.getElementById('test');
var object = new Object();
object.test = element;
element.test = object;

// 主动接触引用
element = null;

手动接触的真正目的,是为了让值脱离执行环境,以便垃圾运行期下次回收时将其回收♻️。

管理内存

确保占用最少的内存空间,可以让页面获取更好的性能。而优化内存的最佳方式,就是为执行的代码只保存必要的数据,一旦数据不再有用,就及时将其值设置为null,这种方式叫做解除引用。

node中的内存管理

node也是一个JavaScript的运行环境。使用V8引擎,因此是V8的内存管理方式。

一般的后端语言中,对内存的使用没有什么限制,但是nodeJS却不一样,对于64G的内存,它只能使用1.5G,而对于32G的内存,它只能使用0.7G。这是由于垃圾回收机制限制,因此在使用变量时,可以通过手动解除变量,或者尽量少用闭包等方式。

相关文章

  • JavaScript 中的垃圾回收

    内存的生命周期 1 分配所需要的内存2 使用分配到的内存进行读写操作3 不需要时将内存进行清除 javascrip...

  • JavaScript中的垃圾回收

    垃圾回收概述 JavaScript具有垃圾自动回收机制 原理是:找出不再使用的变量,释放其内存空间,为此垃圾回收器...

  • 垃圾回收机制

    垃圾回收机制—GC Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就...

  • JS 的垃圾回收机制与内存管理

    垃圾回收机制 Javascript具有自动垃圾回收机制(GC:Garbage Collecation),也就是说,...

  • JavaScript垃圾回收机制

    什么是垃圾回收机制? 和java,c#一样,javascript也有垃圾回收的机制,比如说c++和c就没有垃圾回收...

  • JavaScript垃圾回收机制

    JavaScript具有自动垃圾回收机制,回收原理很简单:找到那些不再使用的变量,然后释放其内存空间,垃圾回收器会...

  • JavaScript中的垃圾收集

    JavaScript具有自动垃圾回收机制,垃圾回收机制会按照固定的时间间隔周期性地执行这一操作,垃圾回收机制必须跟...

  • JavaScript垃圾回收

      JavaScript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存。而在C和C++...

  • JavaScript垃圾回收

    垃圾回收机制 1. 标记清除 当变量进入环境(例如,在函数中声明一个变量)时,就将这个变量标记为“进入环境”。内存...

  • JavaScript的垃圾回收机制

    JavaScript采用的垃圾回收机制是标记扫描算法(Mark-and-sweep algorithm),它会回收...

网友评论

      本文标题:JavaScript中的垃圾回收

      本文链接:https://www.haomeiwen.com/subject/vlxlyhtx.html