Javascript - 垃圾收集器计时器?

标签 javascript browser garbage-collection

对 javascript 中的垃圾收集器计时器有任何想法吗? 假设我在脚本下面运行,将运行并且关联的范围链变量将运行 正好在 100 毫秒后进行垃圾收集?还是一些边距?

我在 stackoverflow 中阅读了一篇关于垃圾收集的帖子,但我仍然有这个问题。 以下是我的问题?

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

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

最佳答案

每个用户代理都以不同的方式实现垃圾回收。所有用户代理都使用 mark-and-sweep定期重复的方法,因此没有“立即”;当它发生时它就会发生。

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

超出范围的函数立即有资格进行垃圾回收,但实际上不知道何时会发生。

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

关于Javascript - 垃圾收集器计时器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8216843/

相关文章:

javascript - (Vue.js)访问页面时如何更改 'background-image'

javascript - 如何生成两次随机数?

java - 使用 Java 获取有关标准浏览器的信息

security - IHTMLTxtRange.execCommand(“Copy”,false,null)由于IE设置而失败

java与免费c函数的绑定(bind): how to correctly free an object

c# - 如何以安全的方式获取弱引用的目标

java - 在同一页面中的 javascript 中检索 arraylist 的值

c# - 在 C#.net 中,我如何解析 HTML?

c - 在C中寻找垃圾收集的根源

javascript - react 无限幻灯片