上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

GC算法学习

[复制链接]

118

主题

906

帖子

529

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
529
发表于 2021-8-20 21:50:47 | 显示全部楼层 | 阅读模式

引用计数

对对象的引用进行计数,优点在于简单方便,立即执行,缺点在于消耗资源过多,时间较长,对互相引用无能为力

标记清除

从根目录进行遍历对所有可以遍历到的对象进行标记,然后清除非标记的垃圾,优先在于相对引用消耗资源较小,缺点则是产生碎片化存储

标记整理

在标记清除后进行整理空间,防止产生碎片化存储

标记增量

在标记的过程中分时分段进行标记,与程序交替运行,减少等待时间,然后进行清除

新生代与老生代

新生代

空间较小,存在两个空间,主副空间,垃圾清除时将主空间标记内容转移到副空间进行整理并清除垃圾并转移

在存储占用大于一定百分比后或一轮GC清除后会将内容转移至老生代

新生代通常由局部作用域等变量所占用

老生代

采用整理,清除,增量等算法

使用标记清楚清除空间,然后使用整理

采用增量标记的方法来进行效率优化

已有1人评分好评 油猫币 理由
小陈 + 1 + 1 ggnb!

查看全部评分 总评分:好评 +1  油猫币 +1 

发表回复

本版积分规则

快速回复 返回顶部 返回列表