00:00
那关于垃圾清除阶段呢,我们三种算法呢,就已经讲到这儿了,那下边呢,咱们做一个小结啊,对比一下我们说的这三种算法,首先呢,大家来看这个表格啊,这个表格呢,应该说非常清楚的表达了三种算法他们各自的从不同的角度的一个对比情况,首先的话呢,我们看这个速度啊,这个速度呢,其实就是我们所说的这个执行效率啊,诶我们主要关注的对于一个算法来讲,更多的关注的就是这个时间复杂度,对吧,所以这呢,也是我们第一个参考的这个标准,那从这个速度上来看的话呢,这个copy,也就是说我们的复制算法呢,它是最快的。啊,它是最快的,其次的话呢,是我们说这个叫标记清除算法,然后最差的是我们说叫标记整理,或者叫标记压缩算法。啊,这个大家能明白吧,对吧,你看这里边我也写了哈,就是对于咱们这个叫标记整理或者叫标记压缩算法来讲呢,它呢,呃,效率上呢,不尽如人意,它比咱们这个复制算法多了一个标记的环节,比咱们这个标记清除算法呢,多了一个整理内存的一个阶段,所以呢,它从效率上来讲,它是比较差一些是吧,相对来说啊,这三个来说,它是最差的一个了,然后下一个呢,我们说从这个叫空间开销上。
01:09
从空间开销上,这里边我们也可以理解成叫内存的一个利用率上啊,内存利用上我们知道这个标记清除算法它有碎片问题是吧?诶它有碎片问题,当然呢,这块人家毕竟不需要呢,两倍的这个内存空间啊,那对于copy来讲,复制上面来讲,它的缺点呢,就是它需要两倍的内存空间,内存利用率上来说呢,就比较差一些啊,那么这两个呢,都不需要两倍的内存空间,所以说呢,多内存利用率上还好一些,但是呢,它俩再去比的话呢,我们会发现这个标记清除的话呢,它还有碎片问题。就是你这个内存利用率呢,可能也会稍微受点影响,比如大对象你就放不下了,对吧,而我们这个标记整理算法或者标记压缩算法的话呢,它不管的内存空间,哎,不用两倍的,而且它还不存在这个碎片问题,哎就从这个空间开销上来讲,这个标记整理或者叫标记压缩算法是最好的。啊,下一个从移动对象上来看,咱们也可以理解成叫内存的一个整齐度,内存的整齐度上来看的话,没有碎片嘛,诶对标记整体来说,所以它呢也是是啊它呢也是因为他们移动过这个对象,所以说呢,他们这个,哎我们说整机度上来说呢,就更好一些,使用的呢,也是我们说叫碰撞指针的方式呢,再去分配新的对象,而我们标记清楚算法的话呢,它没有移动过对象,所以有碎片化问题,导致呢,就是我们,诶就是你没有移动对象嘛,诶所以这是否啊导致有碎片化问题,所以呢,它使用的叫这叫什么空闲列表的方式,再去分配新的对象空间。
02:32
对吧,诶这个呢,诶理解一下,那么综合来看的话呢,我们说呃,在这里边从效率上来说,我们因为相对来说也看重效率啊,这个复制算法最好,呃,那么这个如果说这几个指标都兼顾的话呢,呃,可能这一项呢,这个复制算法打的分高一点,那整个呢,都下来综合来看的话呢,就是标记整理或者叫标记压缩算法的,应该算还是不错的。啊,就是算一个比较,呃,比较什么呀,就是就跟大家买手机一样,如果你就看中说这个运行速度快,你可以呢,就买这个苹果手机对吧,如果你看中的是这个拍照功能的话呢,你可能会去买这个像VIVO啊,OPPO啊这样的手机,因为它美颜呢,相对来说好一些,对吧,有时候这个嗯嗯七八百块钱这个手机啊,我去这个商场有时候看到小米啊,VIVO OPPO啊,你发现它那个美颜功能哇,那做的真是还是挺强大的。
03:21
就是呃,以前呢,不觉得啊,说这个美颜太过分了是有啥好呢,或者作为一个男生啊,像我作为一个男男生男人是吧,这个要啥美颜呢?但是你会发现呢,当你真的打开这个手机以后呢,你发现你脸脸色啊变白了啊,眼睛呢变大了啊,你照个照片呢,你说发个朋友圈啊,或者发给一个一个朋友啊,多少感觉还是要好一些的,是吧,谁没有爱美之心呢。那所以说美颜功能,它确实还是一个挺主打的一个特征,那如果你要看中这个的话呢,你可能就不能买苹果了,因为苹果呢,更多的主打的是这个要还原这个真实的世界,对吧。嗯,行,嗯,那你可能还看中这个性价比的原因就是那你看中的是什么呢?你可能就直接奔着去了,但是呢,你综可呢,我想买一个,呃,就综合性能都还算是不错的,那有可能你选的就不是苹果了,因为它可能价格也高一些,对吧?哎,那一定有一个相对来说综合性能来看比较不错的,那这里边呢,我们说就是标记压缩,或者叫标记整理算法。
04:18
啊,只能是从我们这三个里边来比,那么最后一句话说,难道就没有一种说最优的算法吗?啊,有没有最终的最优的一种算法来帮我们去在新生代啊,在老年代啊,乃至于说在方法区啊,在回收对象的时候呢,去使用呢?啊这个咱们下边呢来看。
我来说两句