00:00
好,那接着的话呢,我们来看下一组指令啊,叫monitor watch trace,还有stack t t等等这样的几个指令,那这几个指令的话呢,我们简单来看一下这个描述的话,会发现呢,跟方法呢,基本上都是相关的,对吧?啊那这呢,事实上呢,也确实如此,我们呢,可以从更多的维度呢,来观看一个方法的一个执行情况。那我们就按照这个顺序呢,首先来看第一个啊,这个呢叫做monitor,它呢主要是针对这个方法执行的一个监控啊,一个监控,比如说呢,我们可以去监控啊,你根据这个类的匹配啊,或者方法的匹配,对应的这个类方法,它进行一个监控,涉及到呢,这个方法调用的一个次数啊,这个执行的时间,还有这个失败率啊等等这样的问题。注意呢,这提到它是一个非实时返回的一个指令啊,不是说呢,我们执行完以后呢,马上就能出结果啊,这个咱们这个一执行大家就能够看得到啊,你看它这有一个是不是默认的一个统计的一个周期120秒,那这个时间还挺长的,两分钟是吧?啊那如果大家呢,想看官网这个,嗯,介绍的话呢,你直接就打开这个monitor就行,那也推荐大家呢,直接看这个官网这块就可以了啊,这个写的还是挺清楚的,包括参数啊,包括使用案例啊,诶都有啊行,那这块呢,咱们就直接来给大家做这个演示了,好回到我们这个程序这块啊,我们这个OMT的这个程序的话呢,诶又停了停了,我这块又重新把它跑起来了,然后呢,又登录成功啊,这个指令的话呢,咱们这会也都演示过了,所以我这就不多说了啊,然后这个时候呢,咱们使用一些这个叫monitor是吧。
01:29
那我们这时候呢,想监控哪一个操作呢?哎,咱们看下这个程序里边啊,咱们当年运行的这个Java进程里边没方法里啊,这有个release啊sleep还有这个list的at方法,哎,咱们看这个也行哈,这个picture呢,是咱们自己定义的一个类啊,这个类呢,哎是创建对象,咱们那会也看到了,咱们对应的有一个叫in这样的一个方法是吧?啊,那我们就对这个方法呢进行一个监控。啊,Monitor这块我们来一个叫com.at硅谷点Java下的啊picture吧,就这个类啊,然后的话呢,哎,空格一下啊,我们想看一下它这个应力上对应的其实就这个构造器它的一个情况啊回车。
02:07
好了,那这个时候呢,大家会发现呢,确实体现的就是一个非实时的。哎,非实时,非实时的一个情况,默认的话呢,是120秒,那这个时间呢,稍微有点长,咱等不起啊,那我这块呢,直接就CTRLC了,那这块也提示我,哎,输入Q或者CTRLC啊去这个above了是吧,那这时候呢,我们可以去加一个具体的参数了,那我们在这个哎,Monitor这个前面的话呢,我们可以来一个杠C,然后来一个五啊,然后这样回车一下,这个五的话呢,就是秒的意思啊啊五秒。那大家呢,在五秒之后就能看到这样的一个数据了。对吧,哎,就能看到这个数据,好,那我们看一下这个数据啊,每隔五秒呢打一次,呃,有这样的几个信息,第一个呢叫time stamp啊这个呢就是时间戳啊时间戳,然后你看这个是不是每隔五秒这块呢,是不是就操作一次,对吧。打印一次啊,针对这个类呢,是皮这个类方法呢叫T的方法,Total呢,就是在这个时间之内呢,哎,我们这块一共被调用的次数相当于创建了这么多个对象,对吧?那成功的次数呢,也给我们显示了失败的次数啊,以及呢,平均的RT时间以及呢失败率啊这块你看哎,就一直帮我们这样去打印啊,这块呢,你看这样显示就是一个没有终止的一个情况。
03:17
OK,这个呢,就是主要我们说的这个monitor,它用来监控呃,咱们这个方法的它的一个,呃,具体的一个执行里边的一些基本的信息是吧?诶这个其他的一个情况呢,我就不多这个做这个介绍了啊,然后大家呢,也可以看一下官网的文档,然后呢,我们看下一个啊下个呢,这个叫做watch。啊,叫做watch,它呢是来干什么呢,叫方法执行数据的一个观测。画法执行数据的观测啊,它这里边这个参数呢,比较多一些啊,参数比较多一些,诶大家呢,你也可以看一下这个,那这个光光给我们发了一个文档,它的一个介绍啊,关于watch来执行数据的一个观测,呃,观测范围包括返回值,抛出的异常,呃,入参是吧?哎,通过这个OGNL啊表达式也进行变量的一个查看啊,类似于这个啊是吧。
04:05
呃,那下边呢,就是它这个参数啊,有这个使用的一个说明等等案例啊都有,好那这块咱们就直接来测试了啊回过来啊,这时候我们来一个CTRLC啊把刚才这个monitor呢,我们就终止一下啊终止一下好,那这时候呢,我们就来一个诶watch是吧,那针对呢,还是咱们诶com.at硅谷下的Java的哎,Picture是吧,哎这样一个类当中的我们这个in这个方法。啊,针对它来进行查看啊,那如果这样写完之后,我们一回车。哎,你看这时候呢,有显示一些基本的信息对吧?啊有显示基本信息啊,那这呢是一个默认的一个情况,哎,我们呢,也可以给它去加一些这个参数啊,我先这个这截两个这个基本的这个咱们给它盯一下是吧,来保留一下啊然后呢,我们还可以呢,去加这个参数啊,哎,我们watch一下啊,让我来一个上啊呃,在这个后边的话呢,我们可以去写相关的这样的这个呃参数的情况啊,用这个双引号,比如说呢,我们这里边啊,这个想关注两个事儿啊,一个是关于我们这个叫per。
05:06
就这个参数的问题是吧,另外一个呢,关于我们的返回值。Return啊,就是我们比较常用的是这样两个啊S,还有这个return object啊这样的一个情况,哎,还可以呢,在后边加个杠X一个二。对吧,哎,这个是什么意思呢?看一下啊。回来这个X x2是吧,指定输出结果的属性,便利的一个深度啊,默认值是一啊,相当于便利的一个深度呢,这个值我们调成是一个二了,来我们看跟这个没有设置的这个区别是什么啊,回过来,然后这时候我们直接点一个回车。哎,出来了是吧,好,那这呢,我们看到他打印的这个数据,这个场景呢,是这个样子的。哎,是这样子的是吧,这里边包含的信息呢,你看我们当前这个类中的这个方法,哎,然后呢,它的total啊,它的执行的一个时间,花费的一个时间,这跟我们上边这个都差不多是吧?Result这个结果里边object啊,它那是一个啊对应的这个随机数是它,诶上面这块呢,显示的这个关于object信息的默认的,你看是不是信息量就稍微多一些,哎,创建这个对象,它这个对象的一个地址是不是也有所显示啊,然后这个no,我们这块呢,主要关注的是不是就是它的一个参数,还有这个反馈值是吧?哎,就是这个信息呢,是我们目前只主要只关注的两个信息啊可以。
06:23
哎,这个在这啊a three。啊,那这块的话呢,我们主要关注的是不是就是这个,那这两个参数的情况是吧?哎,前面这个我们没有关注啊,这个大家稍微注意一下,好,这是我们说的是这个事情。嗯,然后的话呢,我们再看一个什么呢,咱们点一下这个上啊,嗯,这里边呢,我把这个杠X2去掉了,然后我们做一个回车。哎,这是去掉以后的一个情况是吧,去掉以后的这个情况的话呢,它关于这个深度上的话呢,就有区别了,哎,刚才我们说这个深度的话呢,默认是一是吧,默认是一,那我们刚才呢,相当于是来一个二啊,它这个深度呢,会有一个变化啊好,这呢是我们说的,这叫哎,Watch,嗯,然后下一个。
07:06
哎,下个呢,这个叫做trace trace呢是方法内部调用的一个路径,并输出方法路径上啊的每一个节点上的一个耗时。啊,方法内部调用的路径啊,输出方法路径上的每一个节点上的一个耗时,哎这块呢,如果大家不是很清楚呢,咱们就直接来进行测试了啊嗯,我们直接回过来。哎,这块呢,我们就直接哎垂一下是吧,啊那这里边呢,我们还是针对咱们这音的这个方法啊,艾特硅谷点Java下的。Picture啊。当然我这呢是演示的这个方法啊,大家真是在开发当中,你可以针对你自己代码中的指定方法进行一个测试,大批这里边呢,哎,我们写一个叫in啊,然后回车一下。啊,可以了是吧,那这里边我们看到这个信息啊,前边的呢,还是相当一个时间戳,哎,这个是在我们这个may方法当中啊,ID是一啊,这个我们相应的一个线程呗,是吧?这个may呢,其实指的是我们这个线程的一个名字啊,线程的ID是一,然后呢,不是一个守护线程,这是它的线程的优先级,哎,然后呢,是我们对应的这个类的加载器是吧。
08:13
哎,下边呢,是我们关于这个方法它的一个执行的一个时间,哎,就是关于这样一个基本信息的一个描述啊,相当于指明呢,就我们这个方法呢,内部的一个调用的一个路径。啊哎,这个调用的路径好,那还可以呢,我们这里边呢,去加具体这个参数啊,比如大家呢,这里边儿,哎,我们点一下这个叫杠H是吧?哎,这里边我们看到可以有设置相应的这个N,设置这个limit啊,就是它的一个具体的次数了啊,比如说呢,我们在前面这块设置一下杠N来一个五。对吧,啊,来一个五好回车,好,这时候我们会看到呢,咱们是不是就执行过五次啊。哎,就执行五次啊,就像你这个方法呢,一直不停在执行,我这块呢,只输输出这个五次啊,它的一个调用情况。好,这呢,就我们说的这个叫trace啊,Trace好,接着呢,我们再看下一个啊,这个叫stack。
09:00
Sta站是吧,哎,这什么意思啊,输出当前方法被调用的一个调用路径啊,也有这个相应的参数,这个次数啊等等啊,这样的几个情况啊,来我们还是直接过来做这个测试啊。哎,Stack好,Stack这块呢,我们后边呢,直接输入咱们艾特硅谷点Java下的。哎,是吧,针对我们这个叫in。哎,这样一个方法好,这时我们直接点回车就可以了。结束了是吧?好,关于我们这个方法相当于被调用的一个调用路径啊调用路径啊,我们这里边看一下它这个方法呢,是不是在我们这个呃,May方法,呃,在我们这个oom test这个里边的may方法里边调用的是在20行调的啊,因为我们这呢,只有一个位置进行调用,所以这块显示的就这一个是吧,20行看看是不是呢?那回过来啊,第20行,哎,是不是就是这一行啊。哎,在我们这调了这个init方法是吧,哎,没有问题啊,行这呢比较简单的这样一个指令叫做stack。嗯,再下边这个呢,叫做TT啊。
10:02
呃,这个TT的话呢,它是一个time time啊,Tunnel这样的一个缩写,就是时间隧道啊,这个意思说这个TT。啊,这个TT也感觉怪怪的是吧?它呢就是方法执行数据的一个时空的隧道啊,能够记录下指定的方法每次调用时候的一个入参和返回的一个信息啊,并能够对这些不同的呃时间下进行调用进行一个观测啊这个参数的话呢,大家会发现是不是也不太少是吧?啊,也挺多的哈。啊,还有还有这样的参数,还可以重新再做一次调用啊,这样一个情况啊,来指定多长时间去调用啊,这个呢,具体的一些情况,大家下来都可以去做这个测试啊,去熟悉熟悉,那我们这块呢,简单来做一个演示啊,哎,直接呢就TT。啊,T的话呢,我们直接就写com.at硅谷。看点Java下的啊,Picture。哎,Picture是吧,然后针对的是我们这叫这样一个方法,好这里我是不是就写完了,然后呢,直接一回车。
11:03
诶,发现的是不是报错了是吧?报错了说我们这个进程的命令啊,非法的参数异常,呃,说你至少得有个参数是吧?啊相当于我们这里边使用的这个参数呢,是有缺失的啊,比如我们这个杠H,看一下啊,参数确实还挺多的啊,那我们常用这个参数的话呢,哎,这里边它也有记录啊,比如说这个杠T。表明呢,希望你记录下的这个类中的指定这个方法每次执行的一个情况啊,那我们加上这个杠T就可以了,是吧?还有呢,比如说这个杠NS3这个就一看呢,就知道是记住这个次数的,好,那这块我们比如说加一下啊。哎,这个调过来。哎,在这儿呢,我们来一个杠七是吧,来做一个推车。诶,那是不是就可以了,哎,你看还告诉我们说可以通过这个杠N的去控制啊,嗯,这里边呢,我们说看看是什么信息啊,Index,这是时间戳花费的时间啊,然后呢,这个当前这个对象啊,它是属于哪个类的啊,是什么方法,哎是不是描述了我们当前这样一个叫什么时间隧道是吧?哎,当前这个时间的一个呃刻画啊。
12:07
好,那这块呢,我们不是刚才说了,还可以加上一个杠N是吧。哎,刚刚呢,这块比如我们来一个五啊做一个回车,哎,这里边呢,你看是不是就给我们显示了五个情况是吧?哎,针对于我们当前这个方法什么时间被调用的啊,花费了多少时间啊,这块的一个刻画,包括对象的它的一个啊哈西扣的这个值啊也有所显示。啊,这样子的行,那这样的话呢,咱们就把这里边相关的这五个指令呢,给大家说了一下,都是针对于这个方法调用相关的啊,就是如果呢,大家希望从更多的维度啊,去看到关于这个方法的一个执行情况呢,大家呢,诶推荐你就使用这里边提到的这五个指令啊就可以了。好,这是我们说的这一波。
我来说两句