00:00
好,那下边的话呢,咱们看一下这个叫for GC日志的一个分析啊,这呢也是这个之前的话呢,呃,做了一个这个垃圾回收,然后呢,取了其中的一条这个for GC的一个日志的数据,然后把这个数据呢,我们给他这个肢解了,这个说这个肢解总感觉词不太好分解了是吧。知己呢,感觉挺吓人的啊,那现在还在这个,我还在这个学校里边录课啊,整个这个校区呢,现在就我一个人啊,走廊还挺黑啊,这一说知己还挺吓人啊。想起这个电锯惊魂啊。好,这个拉回来啊,咱们现在呢,看一下这个for,这C这个日志的一个解析啊,其中呢,有一些信息呢,咱们再讲M这期呢,大家也算是比较熟悉了啊好,那从上往下那一开始的话呢,还是这样的一个时间啊,你这个GC发生的一个时间啊,这个呢,还是通过我们刚才提到的这个叫date stems是吧,这样一个参数呢,给它输出的行,然后下一个的话呢,自然而然就是我们类似于这样的时间,就是这个time stamps。嗯,跟刚才那个命这些一样啊,这不多说了,然后再下边这块呢,信息非常关键。
01:01
指明了我们当前这个垃圾回收行为,它是一个for j c,小括号呢,跟我们刚才说那个minor也类似,就是什么原因造成的,你看这里边呢,提到叫Meta data j c thhold,就我们这个圆空间的啊,这个空间不足了造成的。那这呢,就说的非常的明确,那除了我们这个for j c,这个叫Meta data j c,嗯,这个stresshold之外呢,你看咱们这里边这个出现的这个for j c是不是都是这样一个操作呀,对吧?哎,这个操作呢,就是由于我们这个自适应啊,就是新生代啊,老年代啊,在分娩过程当中不足了啊,导致我们出现了这样的一种这个for这系列行为啊,这个呢,反而是我们也比较常见的一种行为。那除了这个之外呢,还有呢,叫system,就是我们调用那个system.gc的时候呢,出发的啊这个呢,就是小括号叫做system了。啊,这个比较清楚,相当于这块呢,就告知我们发生的这个原因对吧。再往下的话呢,就是关于我们这个新生代的啊,新生代到年代,然后呢,这个对空间的一个变化,还有这个圆空间,或者叫拥有带啊这样的几个大块,那这个新生带的话呢,这块跟我们刚才讲的其实是一样的,这个新生带呢,垃圾回收之前它的一个大小,垃圾回收之后的一个大小,然后这块呢,就是9/10的这个新生代的一个大小,对吧?啊,这块已经说过了啊,然后再往下的话呢,诶,当然这块还指明了你垃圾回收器到底是谁对吧?针对的是这个新生代还是什么带啊,这是针对老年袋的,这是垃圾回收器对吧?一看就能就能很清楚,嗯,这块呢,是我们这个老年袋它这个,呃,垃圾回收之前的一个大小,垃圾回收之后的一个大小,这个,呃,这是老年代的一个总大小对吧?呃,老年袋呢,这就是总大小啊,不涉及到几分之几的问题。
02:37
那这里边儿我们会发现呢,这个在进行这次for GC的时候呢,这个新生代呢,你看这个反而给清空了,老年代呢,这个自然而然它就变大了。啊,就变大了对吧,这个当然呢,很多时候,比如我们像这种自适应的这种这种情况下,呃,这个有可能这个老年代呢,就是从大变小,那就相当于老年代呢,进行过这个垃圾回收啊,咱们这次呢,是因为由原空间造成的,所以呢,这块你反而还看到变大了啊,因为新生代的数据过来了。
03:04
好,那新生代老年代说完之后呢,下边这个呢,紧接着就是我们整个这个堆空间,堆空间的一个垃圾回收之前,垃圾回收之后和这个堆空间的总大小,注意垃圾回收垃那这个这个对空间的总大小,这个总的加引号,因为呢是9/10的信用贷加上这个老年。啊,具体的大家你可以去这个拿个例子你演示一下,你算算看是不是这个9/10啊,这个我就不演示了啊,咱们再讲上面的时候呢,我记得也说过这个事儿。呃,然后再往下的话呢,呃,就是我们对应的这个叫标空间啊,所以呢,这块我们也能强调一下,就咱们说的这个JC啊,这个for j c,呃这块呢,其实提到就相当于是整个这个堆,当然这个堆呢,是包括我们说的这个方法区的这个意思的,整个这样一个区域的一个垃圾回收行为,所以说呢,我们在这个for jc这个日志的解析里边呢,我们也能够看到关于这个圆空间的一个呃数据的情况,对吧?呃之前呢,之后的还有这个总大小。啊总大小啊行,这次呢,因为是这个for jc由于这个原空间不足造成的,所以呢,这块啊,确实出现了一个回收行为了啊OK,然后最后的话呢,列举出来整个这C花费的时间单位是秒啊这块跟上面呢提的是一样子的啊,这个用户态,这个内核态,还有这个实际的一个时间啊那这呢,就是我们关于这个for这些日志的一个解析啊,那大家呢,基于我刚才讲解的这个信息,你呢,再随便挑一个任何的这个for jc应该呢都能分析出来。
04:23
哎,就是这样一个情况啊,这个呢,稍微的记一记就可以了,行,那这块呢,咱们讲解的是什么呀,就是我们实打实的自己去一点点去抠这个里边这个数据我们保证自己能够看得懂,对吧?那实际在开发当中,我们是不是也可以借助一些工具啊啊,那下边呢,我们就来讲这些工具的一个情况啊。
我来说两句