00:00
好,那关于这个Java mission controlrl呢,我们,诶它的这个实时监控GM状态的这样的一些功能,咱们刚才呢,就给大家说了一下,然后呢,我们再来看一下,这个叫Java flight recorder,哎这个呢,我们称为呢叫Java飞行记录器啊,记录仪记录器都行,哎它呢,实际上属于我们这个GMC的一部分啊,在这也能够看出来,对吧,那我们这里呢,哎,就先做一个这个配置啊,把这个飞行计数器呢,咱们给它启动起来。啊,启动起来啊,那启动起来的话呢,我们看这里边需要一些数据啊,这个做一个配置啊,比如这个名称呢,就要我的记录啊,这个记录的时间我们这儿呢是一分钟啊,最好呢就不要低于一分钟了,你可以两分钟十分钟啊,甚至更长时间都行,这呢,比如我们就写成一分钟了就啊然后的话呢,大家在这块呢,能够看到啊事件的一个设置啊,是上一次启动的,这个通常呢,我们可以选择这个叫哎continuous。啊,Continuous这种形式啊,这个分析的这种模式的话呢,它占用的这个资源就会更多一些啊,我们选择这个了。
01:00
好,然后呢,下一步。啊,这里呢,是关于我们这个Oracle jdk它的一些这个设置啊,比如说garbage collector这个我们设置什么呢?这个正常就行,编译器啊,译器可以查看一下编译器的一些细节啊,方法的这个取样啊,取样你可以最大程度的去取样啊,这个现成的一个大文件啊,比如说每这个60秒设置一次啊,这个error only OK,这个都行,然后这块呢,是20毫秒,每20毫秒作为这个临界值啊,你改成这个十毫秒都行,当然不改没关系啊。嗯,下边呢,关于我们这个,比如说分配的一个分析啊,哎等等,这个也可以勾上啊,这个不勾呢也也可以啊好,然后呢,下一步。啊,这里呢,我们来设置什么呢?就是continuous这个事件的一个详细记录的信息啊筛选器,呃,这个呢,大家可以去设置一下啊,呃,这个设置的话呢,可以参照一下我这里边儿提供的这个信息。啊,这个咱们等一会儿去讲这个具体的这个呃,一些概述性的内容啊,呃,这个信息里边呢,在这儿啊,提到了一些基本的这个数据啊,大家呢,可以根据我这里边罗列的这些项呢,你做一个设置也可以啊,哎,我把它拿过来,哎,回过来比如说呢,这里边提到了,我们可以针对这个Java virtual machine啊,它这里边的这个叫JC是吧。
02:13
哎,这个,哎不是JC是这个啊在这儿呢,是吧,JC,然后这里边有这个details啊,Details里边呢,Object count和count after j c,哎这两个选项呢,可以给它勾选上。诶勾选上是吧,好,然后的话呢,这个采样的频率的话呢,我们可以通过十毫秒改成一毫秒啊,不要再低了,再低就影响性能了是吧,啊这呢就诶还是找我们这个哎。GM啊,这里边呢,找这个叫Ling啊在这儿啊,在这里边呢,提到了一个方法和方法的这个取样啊,这里边呢是默认的是十毫秒,你改成一毫秒也行,下边呢也给大家启用啊,一毫秒可以。诶,然后这是它是吧,哎,接下来的话呢,还可以针对这个socket和这个fo的采样,十毫秒太久了,哎,改成一毫秒呢,也未必能抓得住啊,干脆就取消掉啊,那就这个呢,其实不取消也没关系是吧,这里有个fair reader啊,这就取消了是吧?Fair writer啊,也可以取消,哎,然后呢,这个呃,Socket reader。
03:12
Right啊,这个不取消其实也可以啊,这我就取消了行,然后呢,点一个完成。好,这时候大家会看到啊,刚才咱们记录的话呢,是不是让他一分钟啊,哎,所以你看这块呢,就从这个一分钟开始,这个数据呢,就往下降了,就好,那利用他这块去记录的这个时间啊,哎,咱们这块呢,哎给大家呢,说一说谁呀,哎说一说我们这个关于他的一个介绍啊,关于他这个介绍。嗯,这里边儿呢,要先提一个点。啊,先提一个点是在我看我是写到哪了啊,哎,写到这儿了啊,哎,我们要想去监控的话呢,呃,需要加上这样的一个参数。啊,这样两个参数啊,这样两个参数,这个哎,这两个参数的话呢,哎,你把它这个CTRLC一下啊,在我们这个程序启动的时候,其实我这块呢,提前都已经加上了啊,针对于我们这个OM test的话呢,你看我已经把这两个参数给它加上了,哎一个呢,表示呢,我们可以去解锁这个商业的特性诶,然后我们可以启用这个Fla recorder啊,否则的话呢,他会给我们报一个这个错啊,诶就报这个错诶所以我们这块呢是可以启动的啊。
04:15
好,然后我们再回过来。那关于这个fly recorder呢,我们这里先看它的一个介绍啊,说呢,它是这个呃,GMC的一个组成部分,没问题,呃,以能呃能以极低的一个性能开销收集啊这个呢,是它的一个关键字眼啊,虚拟拟的这个性能数据,OK,呃,开销非常小,呃,这个在默认配置下呢,平均低于1%啊,与其他功能相比的话呢,哎,等等等是吧,哎,这个呢,就是你就记住一个点,它的性能开销非常的小啊,那这个呃。飞行记录器和我们这个呃GMC共同的构成了一个完整的一个工具链啊呃,这个GMC对于Java Fla recorder啊,它能够连续多长时间是不是记录一些数据啊,呃,连续收集的低水平详细的运行的信息啊,进行高效的一个详细的分析啊,这就是它的一个说明,那刚才呢,我们在呃前面这块看的时候呢,这块它就相当于是一个实时的一个情况是吧?啊这个呢,是记录我们呃一段时间之内的一个数据的情况啊。
05:13
呃,那么它这个事件类型这个大家了解一下啊,这个飞行记录器的话呢,针对这样的几种事件呢,做一个记录啊,这就相当于我们去了解一下这个事件了,事件呢一种分为呢,叫做瞬时事件。啊,用户关系呢,他们是否会发生啊,一瞬时的,比如说像异常啊,现场的启动啊,啊这叫瞬时的时间,那还有呢,叫这个持续的时间啊,会持续一段时间,比如说像垃圾回收啊,会持续一段时间,对吧?哎,在这一个时间段,人类呢,是s sew的啊stop word,然后还有呢,这个要计时的一个时间。啊,比如说时长超出指定的阈值的一个持续的一个事件。啊,持续这个事件OK啊,像我们这会儿呢,也提到了,像CPU,比如说这个,哎持续高于多少啊,哎等等这种是吧,哎这个超出一定预值的一个持续的事件,然后呢,这个取样的一些时间啊,周期性的一个取样啊,取样的一个常见例子呢,就是方法的取样,每隔一段时间,哎,我们就取样这个方法看看呢,诶会不会有一些方法呢,反复执行,那反复执行的就是我们所称所谓的这叫热点的方法,对吧?哎,就这个意思啊。
06:13
那我们在这个flash recorder里边,他也会去专门去记录这个,诶热点方法啊,它就在那个代码那个,呃代码这块呢,诶这个显示了是吧?好然后呢,这个启动方式这块呢,呃,就不准备详细大家说了啊,一种启动方式,呃就是Fla recorder,咱们刚才呢,其实已经启动起来了,这呢就是用在这个第三种方式啊,有图形化界面的方式,那用图形化界面方式之前呢,我们还可以使用这个,哎,相应的这个叫命令行的这种方式啊,设置这个参数是吧?哎,设这个参数。呃,这样的去给他去启动啊,呃,参数里边呢,这个有一些相应这个数据啊,比如这呢是设置我们这个profile它的一个,呃,就是相当于你这个记录这个数据的一个,呃,G f2收集的这个事件的一个类型啊,事件的一个类型。嗯。对,这是他然后的话呢,这个duration啊持续的时间。
07:01
然后呢,这里边提到一个说我们这个GF2的话呢,它收集数据呢,如果不加限制,呃,这个很快的会把这个数据啊,我们这个收集到这个文件中是吧,就会把这个文件呢撑报整个这个磁盘空间了,咱们可以呢,有这样的一个限制啊,比如说这呢设置的是诶max age是吧?哎这个M呢是minute的意思,就是超过十分钟呢,我们就不收集了,这个呢是超过100兆呢就不收集了,这两个呢,只要有一个满足,哎我们就会去,哎是不是清除那些不合规的这个事件了啊是这样子的。哎,当然了,为了我们,呃实际当中啊,这个保证这个GF2它的一个,呃,这个这个叫什么,开销比较小,所以有的时候呢,它是采用这种叫什么呃校验的这种方式啊,看看是不是满足他,满足他那有可能在这相当短的一个时间之内呢,我们看到会超出这个或者超出这个啊这也是有可能的啊,哎,这是我们说的这个第一种方式,哎,那这呢就接下来看涉及到这个第二种方式。哎,那我们要想呢,把这个数据呢,进行一个记录啊收集啊,这个这个这个保存啊,这块我们还可以使用呢,这样的几个指令啊,GF2点start gf2点MP,这是一个收集的是吧,还给G点一个stop,做一个停止操作。
08:09
啊,这是第二种方式啊,第三种方式呢,就我们现在给大家引入的这个,哎,图形化界面的方式,直接我们去启动就可以了啊好,这里的话呢,咱们相当于是不是就给大家启动起来了是吧?哎,就启动起来了啊,那启动起来之后呢,咱们看一看在这里边的一些数据的展示情况啊。嗯,这呢是涉及到这个GM的这个信息,这不用多说了,我们那会儿其实也都见到过这样的一些信信息是吧,哎,包括这里边看到这个sis pro啊这样的信息啊,这就过了,呃,然后这块呢,有这个叫内存是吧,哎,这块有这个内存。嗯,这块呢,大家能看到就是关于我们这个GC的一些初始参数的一些设置啊,年代用谁啊年代用谁是吧?啊GC的平均的一个收集的次数啊,最短的最长的啊,对于我们进行这些这个分析呢,是非常有帮助的啊t r ABB啊,线上的这个共享的一个数据空间啊,有多大啊等等。啊,这是关于我们说的这个内存这块是吧?哎,用于调试的内存泄露和这个JC的啊,然后这个代码这块的话呢,诶我们能够看到什么呢?就是诶相应的包下的一些指定的一些热点包是吧?热点的类啊相当于还有一些热点的方法是吧?呃,哪些方法呢,调用的次数比较多啊,那它呢,就相当于是我们称为呢,这叫热点方法。
09:23
对吧?哎,热点方法啊,那这个呢,是我们比较关心的啊,比较关心的这个点啊,还有调用数啊,哎,异常的一个错误啊等等这块啊这块大家呢,可以做一个关注啊行,那其他的关于这个像县城啊IO啊,哎这块呢,我就不过多的进行介绍了啊,大家呢,可以根据自己的一个实际开发的需求啊,大家呢,选择合适的工具啊就OK了啊这儿呢,我们关于这个呃,飞行记录器呢,咱们就介绍到这儿啊,大家有兴趣的话呢,你下来呢,呃,再通过几个例子呢,去做一个具体细致的分析啊就OK了。好,那关于这个,呃,飞行记录器呢,哎,我们就说到这儿。
我来说两句