其他分享
首页 > 其他分享> > V8垃圾回收机制

V8垃圾回收机制

作者:互联网

在堆中分为新生代—new_space老生代—old_space以及其余分区

新生代内存用于存放一些生命周期比较短的对象数据--初生牛犊,新生代又分为Semi space FromSemi space To两部分

老生代内存用于存放一些生命周期比较长的对象数据--老油条,老生代又分为Old pointer spaceOld data space两部分

内存大小

新生代的垃圾回收

回收策略

新生代采用Scavenger算法来管理内存,通过牺牲空间换取时间,代码中生成的变量会放到新生代的form区域中,当该区域放不下时,垃圾回收算法开始执行,通过广度优先遍历form区域和可达性分析,将所有的活跃对象拷贝到to区域,然后清空form区域,再然后将form区域与to区域进行身份对调

新生代晋升老生代

老生代垃圾回收

老生代的对象如何产生

回收策略

Mark-Sweep

 

Mark-Compact

优化

在执行垃圾回收算法时,会暂停js脚本,这种现象称为全停顿—Stop the world,如果回收时间过长,会有卡顿现象,用户体验极差

Parallel(并行执行)

增量标记

Write-barrier(写屏障)

Lazy Sweeping(惰性清理)

concurrent(并发回收)

并发和并行

标签:标记,新生代,回收,垃圾,V8,节点,老生
来源: https://blog.csdn.net/weixin_60901888/article/details/122752001