【问题标题】:When is javascript code considered garbage for the GC什么时候 JavaScript 代码被认为是 GC 垃圾
【发布时间】:2019-09-20 08:41:25
【问题描述】:

所以我一直在研究更高级的 javascript 部分。现在我正在学习内存、内存泄漏和垃圾收集。网络上的许多示例只是解释了垃圾收集器是什么,但我很难找到一个告诉我代码何时被视为垃圾收集器的垃圾。

到目前为止,我已阅读“当不再有指向对象的引用时”。这是唯一的情况吗?它们到底是什么意思。

提前致谢。

【问题讨论】:

    标签: javascript memory


    【解决方案1】:

    最好将其视为可从根访问或不可访问的代码,而根是本质上始终可访问的值,例如全局变量。 JS 中的垃圾收集器使用“标记和清除”算法,它从根开始并访问每个引用及其引用等。一旦被访问,它就会被标记为已访问/可访问以及从那里所有可访问的引用,并且不会再次被访问。

    你可以有指向对象的引用,这些对象也可能有对其他对象的引用,但是一旦它们再也无法从根中到达,它们就会形成一种无法到达的引用岛。它们永远不会被访问,最终会被垃圾收集器扫除。

    还进行了多项优化。例如,一些对象被创建并完成它们的工作一次然后就消失了。那些新的被清理得非常积极和快速。如果它们被长时间使用,它们将被认为是旧的,并且会减少访问以检查它们是否应该被垃圾收集。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      相关资源
      最近更新 更多