美文网首页
v8工作机制及垃圾回收策略

v8工作机制及垃圾回收策略

作者: HIKALU | 来源:发表于2021-08-12 00:01 被阅读0次

    V8简介

    • 一款主流的JS执行引擎
    • 采用即时编译(JIT)
    • 内存设限(64位1.5GB,32位700MB)

    分代回收思想

    • V8将内存一份为二(From区域To区域)
    • 小空间用来存储新生代对象(32MB|16MB)
    • 新生代指的是存活时间较短的对象
    • 老生代就是指存活时间较长的对象

    新生代的回收实现

    • 回收过程采用复制算法+标记整理
    • 新生代分为两个等大的区域
    • 使用空间为From,空闲空间为To
    • 活动对象存储在from中
    • 标记整理后将对象拷贝至to空间中
    • form与to空间进行交换完成空间的释放

    老生代的回收实现

    • 首先采用标记清除法完成垃圾空间的回收
    • 采用标记整理进行空间的优化
    • 采用增量标记进行效率优化

    tip

    增量标记法为什么能优化效率?
    因为增量标记算法是将一整个的垃圾回收分为多个小的垃圾回收,这样就会使垃圾回收与程序的执行进行交替的工作,这样可以使时间上的消耗及程序停顿的时间更加的合理一些。

    二者对比

    • 新生代区域的回收主要使用空间换时间(目的更快)
    • 老生代区域回收不适合复制算法(占用空间)

    常用性能分析工具

    • 浏览器任务管理器(shift+esc)
    • Performance
    • Timeline
    • Snapshot

    相关文章

      网友评论

          本文标题:v8工作机制及垃圾回收策略

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