javascript - 哪些现代浏览器使用标记和清除算法进行垃圾收集?

标签 javascript browser garbage-collection reference-counting mark-and-sweep

在进行垃圾回收时,我遇到了引用计数标记与清除 GC 算法。
网络上的一些研究表明引用计数已成为过去,当今大多数浏览器都采用了标记和清除。根据文章here

Since 2012, JavaScript Engine’s have adapted this algorithm over Reference-counting garbage collection.

虽然我没有找到任何相同的标准文档,但我很想知道以下内容:

  1. 除了循环依赖之外,还有其他原因让我们放弃引用计数并采用标记和清除吗?
  2. 所有现代浏览器(Chrome | Firefox | Safari | Edge | IE)都使用“标记和清除”吗?

最佳答案

引用MDN

As of 2012, all modern browsers ship a mark-and-sweep garbage-collector. All improvements made in the field of JavaScript garbage collection (generational/incremental/concurrent/parallel garbage collection) over the last few years are implementation improvements of this algorithm, but not improvements over the garbage collection algorithm itself nor its reduction of the definition of when "an object is no longer needed".

关于javascript - 哪些现代浏览器使用标记和清除算法进行垃圾收集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56218239/

相关文章:

java - 如何通过 BeanManager 创建和销毁 CDI (Weld) Managed Beans?

java - 资源泄漏 : workbook is never closed warning when using Apache. POI XSSFWorkbook

javascript - 禁用由 React 应用程序呈现的网页选定部分的副本

javascript - 使用 HTML/CSS/JavaScript 自定义滚动条可视化

html - Chrome 在屏幕调整大小时不显示屏幕宽度?

html - 无法在 CSS 中导入字体

javascript - 在 Firefox Quantum 中刷新页面后丢失 window.history.state

javascript - 为什么 new Date() 函数在 safari 中不起作用?

javascript - Bluebird 相当于 Q Promise.post

闭包词法环境中的 JavaScript 内存泄漏