美文网首页
浏览器垃圾回收

浏览器垃圾回收

作者: 撑船的摆渡人 | 来源:发表于2023-11-29 15:34 被阅读0次

浏览器的垃圾回收机制经历了多个阶段的演变。

早期,垃圾回收机制主要基于引用计数,它通过跟踪每个值的引用次数来判断一个对象是否应该被回收。然而,这种方法存在一个问题,即无法处理循环引用的情况,导致内存泄漏。

为了解决这个问题,浏览器开始采用标记清除的垃圾回收策略。在标记清除算法中,垃圾收集器从根对象开始,遍历程序的整个“对象图谱”,将所有可达的对象标记为活动的,所有不可达的对象则被清除。这种算法可以处理循环引用的情况,避免了内存泄漏的问题。

随着浏览器技术的发展,垃圾回收机制也在不断改进。现代浏览器使用的垃圾回收策略通常都是基于分代式回收机制,将内存分为新生代和老生代两个区域。新生代内存区域主要用来存储新建的对象,老生代内存区域主要用来存储长时间存活的对象。

在新生代内存区域的垃圾回收中,浏览器通常采用Scavenge算法,它通过复制方式将存活对象从新生代内存区域移动到老生代内存区域。在老生代内存区域的垃圾回收中,浏览器通常采用标记清除算法,但为了避免内存碎片问题,可能会采用更复杂的算法,如标记-整理算法或标记-清除-整理算法。

此外,为了提高垃圾回收的性能,浏览器还采用了增量标记和并发标记等技术。增量标记将垃圾回收过程分解为较小的模块,让JS应用逻辑在模块间隙执行一会,从而不至于让应用出现停顿情况。并发标记则是在不影响应用执行的前提下,将垃圾回收工作分解为多个线程同时进行,提高了垃圾回收的效率。

总之,浏览器的垃圾回收机制经历了多个阶段的演变,从早期的引用计数到现代的分代式回收机制,再到增量标记和并发标记等先进技术,不断改进以适应浏览器的快速发展和满足用户对性能的需求。

相关文章

  • 9、闭包

    浏览器的垃圾回收机制:【谷歌浏览器】:基于 “引用查找 ”来进行垃圾回收。1、开辟的堆内存,浏览器自己默认会在空闲...

  • 2018-10-13

    浅谈浏览器的垃圾回收机制和内存泄露 JavaScript使用垃圾回收机制来自动管理内存。 JS的回收机制分两种:1...

  • js基础7(垃圾回收机制、闭包)

    1、js的垃圾回收机制 浏览器自己做的 全局作用域声明的一个变量不会被回收,只有关闭浏览器才会回收 在局部作用域里...

  • 浏览器垃圾回收机制

    前言 浏览器垃圾回收机制 GC(Garbage Collecation):垃圾收集器会定期(周期性)找出那些不在继...

  • 简单理解垃圾回收

    什么是垃圾回收? 垃圾回收的是什么? 如何判断为垃圾? 垃圾是怎样被回收的? 垃圾回收哪些区域的内存? 什么是垃圾...

  • 学习笔记-浏览器的垃圾回收

    1:浏览器怎么进行垃圾回收?从三个点来回答什么是垃圾、如何捡垃圾、什么时候捡垃圾。1.什么是垃圾 不再需要,即为垃...

  • JVM(二) GC算法与分代回收策略

    可达性分析 GCRoot场景 垃圾回收算法 分代回收策略 引用 垃圾回收 垃圾回收(Garbage Collect...

  • JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比

    谈垃圾回收器之前,要先讲讲垃圾回收算法,以及JVM对垃圾的认定策略,JVM垃圾回收器是垃圾回收算法的具体实现,了解...

  • 01垃圾回收机制

    垃圾回收(Garbage Collection,GC) 垃圾回收就是释放垃圾占用的空间 内存的动态分配和垃圾回收,...

  • Java 垃圾收集(GC)浅谈

    Java 垃圾收集(GC)浅谈 为什么需要垃圾回收?哪些内存需要回收?什么时候回收?如何回收? 为什么需要垃圾回收...

网友评论

      本文标题:浏览器垃圾回收

      本文链接:https://www.haomeiwen.com/subject/oarfgdtx.html