Javascript - 垃圾收集器计时器?

P K*_*P K 2 javascript browser garbage-collection

关于javascript垃圾收集器计时器的任何想法?假设我在脚本下面运行,函数和相关范围链接变量将在100ms后完全进行垃圾收集吗?或者一些保证金?

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

  1. 是否有任何SYSTEM TIMER运行垃圾收集任务?
  2. 如果不是,它是基于EVENT吗?意味着如果引用不再存在,垃圾收集器将立即回收内存.

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

Chr*_*ker 7

每个用户代理都以不同方式实现垃 所有用户代理都会定期重复使用标记和扫描方法,因此没有"立即"关注它; 当它发生时它会发生.

每个代理都有不同的阈值和机制来确定GC何时通过.它不一定是事件驱动的(也许你可能会说它是基准驱动的,事件启动的),当然也不是基于计时器.

超出范围的函数立即有资格进行垃圾收集,但实际上并不知道什么时候会发生.

从开发人员的角度来看,这实际上是您不打算考虑的事情.没有任何方法可以停止或启动GC,或者根本没有任何迹象表明它已经发生.检查出about:memory在Firefox中一些有趣的琐事(有一对夫妇半信半疑按钮那里来"控制"的GC).这就是你所能得到的所有内容,并且这些数据不适用于脚本.

  • 感谢克里斯的解释,而不是劝阻某人提出具体设计问题.竖起大拇指 :) (2认同)