Javascript拥有自己的垃圾收集机制,因此我们省去了手工内存回收的问题。

这里简单的记录下关于这部分的内容

 

javascript有两种垃圾收集策略

 

 

一、            标记清除

该方法是在执行垃圾收集时先将内存中所有变量置位,然后去除执行环境及执行环境引用的变量,将其余变量视为无用变量予以收回。

 

小注:

目前大部分浏览器采用的方法,另外在程序中将不再用的变量置为null可以使垃圾回收器在下一次执行中立刻释放相应内存。

 

二、            引用计数

就是对变量的引用次数进行跟踪记录,当引用次数为0时视变量为不再用,予以内存收回。

小注:

由于循环引用问题会导致内存得不到释放,如果在循环规模比较大的情况下会导致浪费大量内存。例如:

Function test()

{

       Var o1 = new Object();     

       Var o2 = new Object();

       O1.obj = o2;

       O2.obj = o1;

}

如程序中o1,o2的引用次数都为2, 函数结束时也不会减为0,所以内存得不到释放。

解决办法:

可以手工拆除循环引用。

O1.obj = o2.obj = null;

相关文章:

  • 2021-07-03
  • 2022-01-18
  • 2022-12-23
  • 2022-02-24
  • 2021-09-25
  • 2022-02-26
  • 2022-02-19
猜你喜欢
  • 2021-08-06
  • 2021-12-25
  • 2022-12-23
  • 2021-11-10
  • 2021-07-02
  • 2021-10-22
相关资源
相似解决方案