00:00
好各位,那接下来的话呢,我们就接着看一下这个V收VM的它一个主要功能啊,这个主要功能这块呢,我罗列出来的这六大项啊,第六项呢,又拆除了三个小项啊这呢就简单的说明一下我们的V收VM的一个主要功能啊,那这里的话呢,我就不按照这个顺序呢,一个一个来讲了啊呃,咱们怎么办呢?直接呢,在这个可视化的这个工具里边呢,咱们直接呢按照他这个呃一界面啊,一个一个的咱们来说就行是吧?哎,这样子来给大家做一个讲解啊呃,更直接一点啊,相当于大家呢,呃,你操作的话呢,你熟悉的话呢,你就跟我一样,直接拿着这个软件呢去去试是吧?呃,去操作就可以了啊行,那么刚才的话呢,我们是不是把这个OM这样一个程序呢,已经给它启动起来了,对吧,那这个程序呢,简单说一下啊,我这呢有一个picture这样个类,然后这个类里边的话呢,我们是生明了一个这样的成员变量,是一个字节数组,然后我们在测试类当中呢,去造很多的这个批对象。那这个对象的话呢,我们去设置一下它这个数组的一个大小,对吧?那这也是一个随机的哈,就有大的有小的,然后呢,每次添加到我们这个release的时候呢,让它有一个sleep这个程序呢,比较简单,那一如既往的话呢,我们会做一个这个对空间大小的一个设置,包括呢,Survivor区和伊甸园区的一个比例的情况,然后呢,诶还有一个呢,叫keep instance的,那这个呢,跟咱们讲这个take council的时候呢,这个keep instant test是一样的啊是这样个情况,好,那这样的两个程序的话呢,我们就都把它先跑起来吧。
01:29
啊都跑起来了,那么这边的话呢,我们就能够在这儿呢看到对吧,那一个呢,是我们这个OM的一个是这个hi instance test,这呢就相当于是咱们用这个P,呃,GPS呢进行查看的是吧?诶都双击一下啊,大家就能够诶调取出来我们关于相关的这个Java进能它的一个显示的一些相关的监控数据啊那这里边的话呢,我们主要看的其实就下边的这样几个项。哎,这样的几个项,最后这个呢叫visual jc啊,这个呢,就是咱们刚才那会给大家说的,你其实把这个插件呢,装一下,你才能够看到这个情况,你看是吧,才能看到这个情况的啊,那这个呢,就是相当于来说呢,我们说是比较形象一些,好那么这块他就先跑着,咱们先不说它吧,嗯,咱们先说一下这个咱们的这个概述这边啊。
02:16
呃,概述这边的话呢,我们看一下这个,你看谁其实都行啊,比如看我们这个叫OM test吧,这个概述里边提到了咱们当前这个Java进程的一个PID啊,都有主机主类啊,下边这个基本信息啊,这不用多说了,是吧,保存的这个线程大文件,对大文件,咱们这也没生成快照嘛,所以这块也没有保存好,然后这边呢,叫GM的一个参数。GM,那个参数的话呢,哎,大家回忆一下,哎,你看这就是咱设置的是吧,咱们在讲这个命令行的时候呢,使用谁呀。使用谁能查看呀。哎,是不是这个解音符是吧?哎,解符就可以进行查看啊,或者的话呢,我们有一个这个JPS,咱们有那个杠V,是不是也能够查看到我们设置的这些参数,对吧?哎,这是一个哈,然后呢,这块呢,大家注意到还有是不是相关的一些,这叫系统的一些属性信息是吧。
03:05
哎,这么多啊,那系统这个属性大家想想,我们在前面一章讲这个命令行的时候呢,使用谁能查看呀。还记得吗?哎,在我们这里边,哎,我们是不是往上找,哎,咱们用这个解in for,它这有一个呢叫解in for-s props,哎使用这个PID啊显示上以后呢,可以查看这个参数信息对吧?啊这呢就相当于都是对咱们前面命令行相关的一些这个工具的一些集合集成是吧?好这呢是一个基本的一个概述情况啊然后呢,下边这是一个监视。这个监视的话呢,诶大家注意到是不是跟咱们用这个解conso啊,前面一个讲到了类似CPU这个占用情况呀,加载的这个类的个数啊,啊1677个,嗯,这个内存中典型的这个堆空间啊,圆空间,它的一个内存的一个占用情况呀。你看它这块呢,相对于这个颜色来讲,感觉还挺人性化的是吧,那相较于咱们前面讲的这个命令行的工具图形化界面的一个典型的好处呢,是不是就是说它可以进行一个连续的一个监控啊,你看实时的这个数据的监控。
04:08
每隔一秒吧,然后往后提一下就多一秒是吧,那我们要自己的话呢,你不可能说长时间的,这个当然也也可以是吧,咱们这个JC的话呢,你你也可以设置这个每隔比如一秒钟监控一次,当然相对来说哈,这个呢,是不是要更好一些哈,也比较形象一些,然后下边呢,就是我们这个线程的一个个数线程,一共是有十个线程,然后呢,守护线程九个,那剩下的那一个活跃的就是咱们呃写的那个没方法里边那个线程对吧?啊这是这样一个说明啊,这个呢不陌生,然后呢,这相应的有这个执行垃圾回收啊,就是显示的啊,强制要求我们点击一下它进行一个垃圾回收,那这块呢,使用量呢,做了一个减少对吧。那关于这个对大呢,咱们一会儿呢,重点说啊,嗯,这是它,然后这个线程这块呢,呃,这个这块啊,大家看到是不是能够显示我们当前的,呃,相关程序当中运行的这个线程的一个个数,实日呢,一共是十个,然后守护的是九个,你这边数一下啊,一二三四五六七二九十,哎你看这多一个是吧,哎,多一个的话呢,你看是因为这个线程它这个你看没有颜色,我换一个啊没有颜色标识的,那这块没有颜色标识,其实这个呢,它就不算了,那就没有它了,就啊那你要是回到这块监控来看的话。
05:19
呃,峰值的时候我们看是有11个的是吧,所以呢,其实就是我们这块看到一共是11个,但是现在的话呢,是有十个啊,因为这个线程呢,相当于它已经终止了,对吧?啊没有了,你要往前拽的话。哎,在这块的时候呢,是11个是吧,哎,是这样子的啊好,那么这个呃,V show vm呢,还比较好的一个点是什么呢?你看大家注意一下,这里边的话呢,你看每一个线程,它这块用不同的颜色做了一个区分,比如这个绿色的呢,它表示的就叫做运行状态啊,就属于randomable的这样一个状态啊,还有这个休眠的啊,等待的微镜的驻留的,监视的啊,你看它通过这个不同的颜色啊标识的就很清楚,你看我们这个may这个线程哈,这个主线程它是一个休眠的是吧。
06:02
是不是感觉有点奇怪啊?哎,他怎么干到这个胸连上去了呢,啊是因为呢,咱们这个妹线程,当然你看一下啊,咱们这个已经停掉了啊,这个妹线程的话呢。这呢是它的这个核心代码啊,它呢主要的是在执行这个呃,外处这样的操作,它里边是不是绝大部分这个时间呢,全都是在这sleep来这个操作,因为太快了是吧,所以呃,以至于呢,就约等于可以忽略掉了,所以大部分时间呢,它是在这sleep了啊,也就是我们这里边看到的,它处在一个这个休眠的一个状态,就是sleep。啊,你看比较形象是吧,好这呢是我们这个先概述一下哈,然后下边呢,还有这个抽象器,这个抽象器呢,一会儿咱们给大家呢,也重点说一下这个抽象器的问题,哎,后边呢叫啊。啊,这块关于这个性能的一个监控啊,CPU的内存的啊,就是类似是吧,啊类似的一个功能啊,啊这是我们说的这个它,嗯,其实这块呢,工具插件啊,这块呢,已安装。
07:00
这个呢,你看其实是我这又装了一个这个profile,就是它是吧,这个大家如果要没装了一个profile的话呢,你这只能看到这个抽氧器,那这两呢功能实际上在这看了也是类似的是吧?好,然后后边那个就是这个微数GC,这个呢,在咱们讲这个上片内存的时候呢,给大家也说过啊,呃,像咱们刚才这个设置呢,内存一共是600兆啊这个呃,伊电元区跟它的比例呢,是8:1:1,所以这里边呢,大家也能够清楚的看到,它就160,它是20,它是20,它是400,然后呢,这个内存的一个变化情况,那这显示的比较清楚,包括编译花费的这个时间可以加载啊,它的这个时间啊,这一电区的一个变化,那非常清晰是吧,它是这样子的。然后这个它就应该是这样的一个形状的。对吧,还这样子的哈,好,这是O区它的一个变化,行啊这呢我们就哎不重点去说它了,就是大家呢,如果你要进行一个内存的一个查看的话呢,你能看到这个什么时候就垃圾回收这个这个这个OM了,像我们刚才在这个hip这里边,哎,Mirror jc啊,我们这个程序呢,在这儿不是已经做了一个终止吗。
08:03
哎,这个终止呢,是报了一个堆空间的一个溢出啊,在我们这里呢,其实就这老年代啊,这块呢已经满了是吧,新生代的这个呢,呃,这个伊甸园区这个数据呢,在往这个O的区放的时候呢,乘不下了啊,这些数据呢,因为我们都是可用的,所以这些呢,你还回收不了,那就出现了我们这个OM了就行,那先简单呢,对这几个基本功能呢,我们先做了一个概述,然后接下来的话呢,我们给大家再提一提这个大MP文件的问题,包括我们这个抽然器的一个问题。
我来说两句