美文网首页
V8下的垃圾回收机制

V8下的垃圾回收机制

作者: 糕糕AA | 来源:发表于2019-08-04 01:16 被阅读0次

V8实现了精准式GC,采用分代式垃圾回收机制,将内存(堆)分为“新生代”、“老生代”两部分。

新生代算法

  • 对象存活时间短,使用 Scavenge GC 算法
  • 内存空间分为FormTo空间,这两个必然是其中一个在使用,而另一个空闲。新分配对象会存储在From中,当From被占满,启动新生代GC,将活跃的对象复制到To中,并将失活对象销毁;复制完成后,FromTo空间互换,这样GC就结束了。

老生代算法

  • 对象存活时间长,有两种算法:1、标记清除法 2、标记压缩法
  • 使用情况:1、新生代中对象已经经历过一次 Scavenge GC 算法,移入老生代空间;2、To空间对象占比超过25%,为不影响内存,移到老生代空间中。
 RO_SPACE,    // 不变的对象空间
  NEW_SPACE,   // 新生代用于 GC 复制算法的空间
  OLD_SPACE,   // 老生代常驻对象空间
  CODE_SPACE,  // 老生代代码对象空间
  MAP_SPACE,   // 老生代 map 对象
  LO_SPACE,    // 老生代大空间对象
  NEW_LO_SPACE,  // 新生代大空间对象
  • 标记清除法启动条件
    某一个空间没有分块的时候
    空间中被对象超过一定限制
    空间不能保证新生代中的对象移动到老生代中

这个过程会遍历所有对象,将活跃的对象进行标记,最后销毁没有被标记的对象;清除过程中会产生一些碎片,当碎片超过一定限制,启动压缩算法:将活的对象向一边移动,直到所有的移动完毕,清除掉不需要的内存

相关文章

  • V8垃圾回收机制

    V8主要的垃圾回收算法 V8的垃圾回收策略主要基于分代式垃圾回收机制,主要将内存分为新生代和老生代,V8堆的整体内...

  • v8垃圾回收 - 2023-02-18

    V8引擎垃圾回收策略: V8的垃圾回收策略主要是基于分代式垃圾回收机制,其根据对象的存活时间将内存的垃圾回收进行不...

  • V8 内存管理和垃圾回收机制总结

    这篇文章主要介绍 V8 的内存管理和垃圾回收知识。 V8 内存管理及垃圾回收机制浅析 由于 V8 引擎的原因,No...

  • V8 GC机制

    这篇文章主要介绍 V8 的内存管理和垃圾回收知识。 V8 内存管理及垃圾回收机制浅析 由于 V8 引擎的原因,No...

  • V8引擎的垃圾回收机制

    转载:V8引擎的垃圾回收机制

  • 深入理解V8的垃圾回收原理

    垃圾回收机制 V8的垃圾回收策略基于分代回收机制,该机制又基于 世代假说。该假说有两个特点: 大部分新生对象倾向于...

  • V8垃圾回收机制

    介绍 V8的垃圾回收策略主要是基于分代垃圾回收机制。在垃圾回收演变的过程中,人们发现没有哪一种办法能够满足所有应用...

  • 简单笔记

    1. V8引擎: 采用即时编译,速度快内存设限,64 位下 1.5 G垃圾回收机制:分代回收、空间复制、标记清除,...

  • 优化你的内存

    这篇文章主要介绍 V8 的内存管理和垃圾回收知识。(总结来自网易课堂) V8引擎内存回收机制 为什么我们要关注内存...

  • 内存机制

    Node内存由V8进行分配的部分和Node自行分配的部分。 V8的垃圾回收机制与内存限制 V8的内存限制   因为...

网友评论

      本文标题:V8下的垃圾回收机制

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