Javascript -垃圾收集器计时器

Javascript - garbage collector timers?

本文关键字:收集器 计时器 Javascript      更新时间:2023-09-26

javascript中的垃圾收集器定时器有什么想法吗?假设我运行下面的脚本,将函数和关联的范围链接变量将去100毫秒后的垃圾收集?还是一些保证金?

我读了一个关于垃圾收集在stackoverflow的线程,我仍然有这个问题。以下是我的问题?

  1. 是否有系统定时器运行垃圾收集任务?
  2. 如果没有,是否基于EVENT ?表示如果引用不再存在,则为垃圾

    function call_me() {
    //calculate elapsed_time - code not given
               if(elapsed_time <100)
               {
                setTimeout(call_me,25);
               }
              else{
               final_call();
              }
    }
    call_me();
    

每个用户代理实现不同的垃圾收集。所有用户代理都在周期性重复中使用标记-清除方法,因此不存在"立即"的问题;该发生的时候就会发生。

每个代理都有不同的阈值和机制来确定GC何时执行传递。它不一定是事件驱动的(也许您会说它是基准驱动的、事件启动的),当然也不是基于计时器的。

超出作用域的函数立即符合垃圾收集的条件,但实际上不知道它何时发生。

从开发人员的角度来看,这确实是您不打算考虑的事情。没有任何方法可以停止或启动GC,也没有任何迹象表明它已经发生了。查看Firefox中的about:memory,了解一些有趣的琐事(下面有几个可疑的按钮来"控制"GC)。这就是您所能得到的所有信息,这些数据对于脚本来说是不可用的。

垃圾回收器是不确定的。
当垃圾变成垃圾后,一段时间后会被回收。

传递给setTimeout的闭包对象在执行后会变成垃圾。