00:00
那同学们这四步过程。和我们的形貌类似啊,那么我们来看看我们的案例。那么。单独写了一个G1的M,那么大概就是配上这么一个G1收集器,那么刚好之前,嗯,杨哥在刚刚开始讲记忆的时候,是不是给大家执行过一个程序,那么我们也来看看,那么对照着我们这个四步回收。第一个初始标记只标记GC root能够直接关联到的对象。那么这块。可能稍微耗费点时间停一下,那么来同学们搂一眼干嘛样?初始标记了。第二步呢,并发标记,那么来同学们,我们找一下,你看并发跟元节扫描开始以前的CM是没有这种概念的,对吧,现在有了,那你请看GC开始什么并发标记start OK,那么马上你看耗时0.001秒,哎。很短了对吧,马上也就并发标记就完了,因为很短的一块,那么进行GC root这么一个链路扫描的这么一个过程,第三步最终标记修正并发标记干嘛的期间因程序运行导致发生状态的那部分,那么有些可能要被回收,有些不被回收,那么该收的时候该犯的犯,那么最终标记说白了是不是final或者叫remark这么标记一次啊,那我们找找,那你看。
01:23
Final mark,那么最终mark,那么接下来干嘛?筛选回收,那么后面的各种,你看GC开始啊,然后更新,哎呀各种折腾吧,那么最后大对象又怎么怎么地好。最终我们完成我们对应的四个步骤的过程和案例。好,那么这块那么常用的配置参数,那呃,这块是这样一个情况哈。因为目前呢八呢还只是。用的这个多一些,外面的互联网公司啊,G1现在呢,Oracle官方是推荐,但是一般嘛,现在呃的外面的互联网公司啊,大公司都是比较稳定哈,他不敢吃新的这些技术,那么所以说对于这些参数呢,我们呢,就选择一些有代表性的,有兴趣的同学,那么按照杨哥教的去查官网,你可以自己在自己的机器上去设置啊。
02:16
那么哪一些参数呢?我给大家有一些常用的,那沿下支线,我们呢,就可以按照我们前面教的怎么配参数,这个杨哥说过了,好,那假设我这个这这个是不是就叫设置啊,TV建筑队的那样的形式啊。G1整个堆的积区的大小。N是二的幂次啊,范围是一到32兆,那么。目标就说白了,你把这20487月划分每一个块块多大,那么这个是max GC po millions,最大GC停留时间这个软目标,那么前面哈,注意。杨哥这儿讲过一句话。G1在停顿时间上添加了预测机制啊,用户可以指定期望的停顿时间,以前GVM垃圾回收能够用多少时间,那他说了算,你人为不能干涉我什么时候打扫完,我什么通知你,那么现在你根据你自己来评估这个工作,我觉得吧,假设你这就是定个软目标给G本说那不行,你这个扫地你不能说扫一个小时,我要求你扫50分钟就要结束那么好。
03:20
赶紧一点,他也能干,这样是不是更大进一步的压榨了它的收集时间,你是明确的指定了这个,那么GVM这样尽可能的停顿干嘛?在规定的这个时间内完成,这个参数是记忆里面非常重要的一个。那么接下来这几个,那么呢,大家了解一下,一般我们都用它的什么默认值,那么比方说G1的这个空闲空间预留百分比,那么都是什么默认是十也不会去调,那么来,那么假设。我们一般可以像这么调,那么沿下支线三步归纳,那么开启机器垃圾收集器,那痛快点,你设置一下你这个堆给多少内存,反正我最多支持64个G,那么现在假设我32个G的物理机器,或者64他们干嘛呢?
04:08
100,那么这个时候是毫秒,那么100毫秒以内要求你收集完成,那么这个时候是不是算是用户指定的,那么也就是说这些是的官网上。还有很多啊,那么基的一些新的参数,但是结合杨哥的这个经验和工作,那么我一般要是我配基我干过一次哈,以前那么这个时候的话呢,我们呢,就用这么一种,这三个偏多一些,其他我觉得用默认差不多了,因为。Oracle的这个JAVA8和JAVA9底层优化的还是蛮漂亮的,好,那么这个就是G1常见的配置和参数。那么接下来面试中,他会问你,那么基你整的明白自己自身是一个什么情况,那你有没有跟以前的对比过一般哈,我个人认为哈,只要这个项目经理他不是水货,他应该不会去非常傻叉的去问你说记一垃圾回收器跟我们的创新收集器有什么比较这个事就好比你说你现在的这个,呃。
05:07
比苹果笔记本电脑和以前的红白机,小霸王游戏机,就是我们打魂斗罗的那个机器有什么区别和比较,那这么比的话,我就觉得这个项目机你肯定不懂,他就自身就是个水货。我们可以无情的鄙视他,但是正常情况下应该会问,如果懂行的会问计线和c Mo相比的优势,我们刚才讲过了,就算说是从刚才我们的这个情况,什么标记啊,四布这个过程是不是跟我们的smos有很接近的相似的特性,那么它跟SM相比不用多两个首先。机键没有内存碎片,我们讲过了是不是小范围的,但cmos我们说了并发标记清除,你只不过是只要是标记清除,就是先标记再清除干嘛。一定会形成碎片,那么记就没有碎片,这这个同学们一定要整明白,第二个可以精确的控制停顿,那么刚才我们还特意的配了一下干嘛,这是一个用户期望值啊,我希望你直接在100毫秒以内就给我把垃圾回收,给我做掉这点事儿,那注意啊,GM将尽可能的停顿于这个事情,你不能过分,你说OK,我明白了,那我这事我配的越小越好,配个一。
06:21
大哥,你这个叫巧干嘛,巧妇也,是不是也难为无米之炊呀?那么什么事你要有给人家一个前提好吧,那么OK,所以说跟G1跟M2个相比的优势,一个没碎片,第二个可以指定精确的停顿时间,好,那么说来说去,最后小总结我们的。GC type of Java GC的种类就这四个,那么详细的给大家。通关好,那么我们对记忆就介绍到这儿。
我来说两句