温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
好,那关于这个jepo file呢,基本的这些功能项呢,咱们就介绍到这儿,然后下边的话呢,我这有写了两个案例啊,通过这两个案例呢,咱们再去熟悉一下关于这个G这个功能的一个使用,哎首先呢,来看一个比较简单的这个案例一,哎这个案例一呢,哎是这样子的。哎,这呢是有一个data塔类啊,里边呢,我定义了三个这个成变量啊,Int型的一个size啊,BAT的一个数组啊,这呢是一兆是吧,一兆的这个大小,然后呢,String形的一个iner。好,然后的话呢,在这个测试类当中,哎,我们写了一个while处,这呢里边造了一个a release,那for循环这是500次,然后呢,造500个这个data的对象添加到这个a release当中,哎,这个让这个程序呢,执行的稍微呢慢一点是吧,是这样子的,呃,这个程序里边我们发现呢,这个release呢,我是创建在这个外循环里边的,也就相当于我们每执行完一次这个循环体,这个就是外层的一个循环体的话呢,我们这个release呢,实际上是不是就要被回收掉了。
01:00
对吧,诶是这样一个场景啊好,那这时候呢,我们去做一个执行啊,如果大家点这个操作的话呢,一定要小心一点,我们针对于谁来执行的啊,我们要找到这个j test,它来做一个执行啊。那这样的话呢,我们就通过idea呢,把这个给它调用起来了。那这样起来以后呢,我们看一下整个关于这个memory的一个情况啊,Memory就我们这个内存的一个情况,哎,你看这个时候内存呢,它这个飙升的速度还是比较快的是吧。好,大家会看到呢,这个内存你看比较高了以后呢,诶这块呢,一下来相当于我们是不是就进行过一次这个GC啊,哎,我们在这个g c activity这块也能看到啊,这就相当于这个JC的一些这个行为啊,然后呢,诶回到这个memory啊,相应的一些垃圾回收啊,那这个垃圾回收呢,我们整体来看到这个效果呢,还是可以的啊,那我们回到这个,呃,内存的这个级别上,比如说我们当前的点一下这个叫mark。啊,Current就记录一下我们当前这样的一个节点,在这个节点里边呢,咱们会看到这个data,你看呃,是比较多的是吧?呃,然后多了之后呢,很快的这块呢,又没有了啊就相当于我们这块呢,实际上就进行了是不是JC的一个操作呀。
02:12
哎,大家会看到你看相应的一些数据啊,增加之后呢,很快的又会消失掉。啊,就是我们相当于进行这个GC了啊,就是正常来讲,我们一个程序呢,哎,这样的话是比较良性的,哎内存呢会增加,然后的话呢,诶有GC这块呢,也会让它回到一个比较低的一个水平上啊这就可以了,那如果呢,我们发现呢,这个JC之后呢,呃,这个内存呢,不断的去增加,GC之后啊,不断的去增加的话呢,这就比较麻烦了,那八成呢,这里边会存在这个内存的泄露问题,那在相应的一个时间节点上呢,那可能就会报这个OM就出来了。哎,目前呢,这是一个比较良性的一个情况,OK。啊,能理解这个意思是吧,好这个呢,就是咱们说的这个叫案例一啊案例一。
我来说两句