请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么标记-整理算法适用于对象存活率高的场景?

翔仔老师好,我这里不是很明白,对象存活率高不是意味着每次要移动整理的对象也越多吗,这样效率不是比较低吗?

为什么不是适用于对象存活率低的场景,这样只需要移动少量存活对象,再清除剩余区域就能实现垃圾回收?

正在回答

1回答

翔仔 2020-03-25 01:24:15

同学好,实际执行的过程中,标记整理中是标记的要清理的对象,对象存活率高意味着需要清理的对象少而不是多


0 回复 有任何疑惑可以回复我~
  • 提问者 _jajajaja_0 #1
    但是翔仔老师,存活对象多不是移动操作多吗? 移动的开销比清理对象要低很多吗?
    回复 有任何疑惑可以回复我~ 2020-03-25 01:41:55
  • 翔仔 回复 提问者 _jajajaja_0 #2
    同学好,不是呢,我意思是说标记的主要是标记被清除的对象,存活的对象多的话意味着被清除的对象少,也就是标记出来被整理的对象就少,所以开销就比较小
    回复 有任何疑惑可以回复我~ 2020-03-25 02:06:27
  • 提问者 _jajajaja_0 回复 翔仔 #3
    我知道清除被标记的对象是少了,但是整理存活对象的开销是怎么考虑的呢。。。。老师你始终没回答这个点呀。我很不理解的是, 复制算法和标记整理算法,不都是移动存活对象,然后清除剩余区域吗?为什么就一个适用存活率低,一个适用存活率高呢?还是我对标记整理算法的工作原理理解有误呢?标记整理算法我的理解是把存活的对象都移动到一端,然后清除剩余的对象。
    回复 有任何疑惑可以回复我~ 2020-03-25 02:34:43
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信