00:00
好,大家刚才呢,咱们把这个OM这个程序呢,给大家跑起来了,在这个je发当中,我们也能够看到对当前这个程序呢,进行了一个监控,对吧?哎,这就属于一个正常的一个启动好的一个模式啊,然后的话呢,我在这个idea当中点击这个stop。诶点击完以后呢,我们再来看这个接破发了啊,这个信息呢,就全都没有了,相当于呢,我们这儿呢,就是进行了一个实时的针对我们当前这个账号进程的一个监控,对吧?诶是这样一个情况啊,那我们在讲解具体的一个项的时候呢,咱们先来谈一个基本的一个点啊这呢也是咱们这个课件里边,接着呢,要来跟大家说的一个事儿,叫做数据采集方式啊数据采集方式啊,咱们这样子给它启动起来,我这呢在idea当中run啊OM test这个main方法把它抛起来,注意这时候我们没有启动这个解po fellow啊,现在呢,咱们采用这个呃,手动的去把它打开的这样一个方式啊,接po fellow,点击一下这个图标启动起来。好这样一个方式对吧,那么这个方式里边呢,大家就会看到它这儿呢,有这样的几个选项啊,相当于要快速启动了啊,哎,这个为了方便检验,我就这块儿我先先听一下啊。
01:06
好,有这样几个选项,那我们一个一个来看一下,第一个呢叫分析一个DEMO session,或者是已经保存的一个session。这个是什么意思呢?就是像咱们刚才呢,啊,刚才那会儿呢,把这个OM test呢,给大家启动起来之后,其实这块呢,就开始进行分析嘛,那个分析当我们进行关闭这个接发的时候呢,它会问我们是不是要保存为一个session。啊,就是跟我们讲会话控制那个session是类似的啊,那如果你要是保存了的话呢,呃,你这时候呢,你就可以在点击的时候呢,比如说找已经保存的那个session啊,你再给他去搭起来就行了啊像这里边就是我之前保存过这个session啊,包括这个远程连接啊,这呢我设置的啊,大家那块呢,如果第一次登录应该是只有这仨是吧,那这个呢,就是只要你保存过,你也可以开启之前你保存的那个session啊,这是可以的,行,这是一个事儿啊,然后呢,我们再来看这里边这个第二个选项叫attach to啊a running GM,就是我们呢,可以去运行当前正在运行的一个障碍进程,进行一个监控啊,这个呢,你要没在这块选择的话呢,也可以在咱们这个位置。
02:08
啊,比如说start的这个center这块啊,你看跟我们刚才呢,是不是这个位置跟这个第一个选项是类似的,对吧?那第二的话呢,你看我们点击它就好比是你点击这里边第二个选项一样,诶咱们呢,找到当前正在运行的这个OM test啊这呢是本机的这个呢,是不是可以another,可以考虑远程的一个连接,对吧?啊这样啊来选择它以后呢,我们再点一个这个start。啊,你看哎,这时候呢,是不是就出现这个框了是吧?哎,这个框咱们等一下说啊,啊接着说下边这个,这样呢也可以呢,我们去运行一个,哎,这个应用的一个服务器端,可以本地的,也可以远程的啊这是涉及到一个远程的一个操作的这样一个选项啊,你可以点这个,咱们在这块呢,也可以去进行操作的啊下边呢,就是打开一个STEM shoot就是一个快照,比如我们的一个对快照等等啊,你把它保存出去了,然后我们也可以呢,把它离线的打开,这样呢就支持一个离线的操作。啊,这呢,就我们说的这几个选项啊,这个大家呢,根据自己的实际情况进行选择就可以了,好这呢,我们就把这个图呢就先去了啊。
03:06
当我们选择了其中的一个这个技能之后,哎,大家可以看到这时候呢,给我们出来这两个选项,这呢就关于我们这个数据采样的问题啊,就是我这里边想给大家强调的一个呢,叫instrumentation啊,叫重构模式,一个呢叫sampling。啊,就是关于叫抽样的一个模式啊,涉及到这个抽样数据啊,哎,这两种模式,这两个模式呢,就对应了咱们这里边儿的这两个选项,那我们也能看到呢,是不是啊recommended啊,就推荐我们是不是使用这叫something这种方式是吧。哎,这个是所有的特性,那这两个区别是什么呢?来大家看一下我这的描述。看我这描述啊,这个instrumentation呢,我们说这是je一个全工程的模式。啊,什么意思说呢,在class就我们这个字解码啊,它在加载之前呢,这呢会把相关的这个功能代码呢,写入到我们这个class这个字解码当中,它会对我们正在运行的这个GM呢有一定的影响。
04:01
就是说白了,它会影响到我们整个要运行的这个资金码文件了啊,那优点是什么呢?就功能比较强大,我们在这里边设置的话呢,对接下来我们的一个监控啊,这个数据呢,是非常的准确的啊,非常的准确的,那么缺点呢,就是如果呢,我们要分析的这个class比较多啊,你想想在里边呢,要集成咱们这个要分析的这个代码的话呢,对我们应用程序的一个执行的性能影响是比较大的啊,CPU的开销呢也可能会比较高。啊,那往往在这种场景下呢,我们呃要要想用这种场景还想呢,尽量呢能够少营一眼,影响一下软件的性能怎么办呢?呃,必要的一些class呢,我们就使用呢,进行一个过滤了,比如说呢,像咱们这个GRE里边人家现成的一些class啊,包括我们框架里边1CLASS对吧?那这些呢,代码我们就可以进行一个filter一个过滤啊,就不让他对这些类呢进行一个分析了啊尽量的就是在这个基础之上呢,稍微减少一下这个性能的一个消耗是吧。那这呢是我们说的一个,哎,叫什么全功能的模式啊,下边呢叫something,就是抽样的一个方式。
05:02
啊,这个大家学过统计学的话呢,应该都知道这个叫样本是吧,样本数据的意思啊,我们呢,可以选择抽取相关的一些数据进行分析啊,比如说每隔五毫秒将每个线程战中的这个呃,方法的这个战针啊,我们把这个信息呢给大家统计出来。啊,那每隔五毫秒操作一下,它对我们这个性能的影响呢,就比较小是吧?啊这时候呢,即使你不配置这呃,不设置这个filter过滤的话呢,这个影响也比较小,这是它的优点,那缺点的话呢,就不能够提供一些特殊功能了,比如说我们想看看某些方法的一个调用次数啊,执行时间呀,哎,这个就不够精准了啊,因为我们是每隔五毫秒执行一次,那有可能这个方法调用次数呢,我们就略掉了一些是吧?啊没有监控到啊,执行时间的话呢,也不够精准。啊,真的是我们说的,哎,各自的这个特点啊,那一般呢,如果我们是进行比如说内存泄露的一个分析啊,或者OM啊,对内存的一个分析这种场景呢,通常咱们用这个Sam方式就足可以发现了,所以没有必要精确到呢,我们非得要用这个instrumentation这种方式是吧?哎,所以说呢,如果我们是正在运行的,注意哈。
06:05
如果呢,我们是正在运行的这样的一个Java程序啊,在我们这个虚拟上正在运行的,那么推荐大家呢,就不要用这个instrumentation这种方式了。啊,就不要用这种方式了,我们来推荐就用这种方式啊好,那下边就说这个事,就我们这里说的这个数据采集,主要是针对这个方法来调用的啊,所以方法的数据采集其实就是我们这个,呃,一个数据采集这样一个意思啊,这就过了好,那这块呢,他也推荐我们用这个这个方式,那我们就点击一下。啊,这块就出来啊,这样一个界面啊,这个界面呢,就是我们这个数据采集的一个方式啊,关于我们这个触发器的一个设置啊,这个一般呢,大家都不用动啊,那它有一些是默认的设置,有一些呢已经设置好的,这个呢,你就直接用它这个呃,模板就可以了啊这个就咱们那会提到优点的时候,它有一些模板啊,直接用这个就OK,直接点一下OK。啊,这呢,就能够进行一个监控分析了。好,那刚才呢,咱们相当于提了一些这个,呃,数据采集方式啊,包括呢,我们进来之后呢,我们如何去这个进行相关的这个,诶这个障碍进程的一个监控,还是说离线的一个监控,哎,我们也涉及到几个选项啊,给大家也说了一下。
我来说两句