00:00
好,关于这个微收VM呢,咱们最后还有一个工具呢,呃,这个功能呢,给大家去介绍一下啊,就是我们这里边看到的这个,诶抽样器里边呢,叫CPU抽样,还有这个内存的一个抽样,这个呢,我们叫抽样也行,叫做采样也行啊这个英文呢,对应的叫sample sampleer是吧?哎,就是抽样采样这样的一个意思,好,那这里边呢,比如说我们还是以这个OMT为例啊,我们点上这个CPU呢,哎,这里边大家看到就能够呈现出来啊,叫热点杠方法。啊,什么意思呢,就这个CPU呢,这个采样器呢,它能够这个定位啊,这个CPU占用的时间的一些方法啊,这呢就能够把这个咱们占用CPU时间比较长的这个方法呢,给我们监控到啊,就是这样的一个情况啊,然后呢,这就是对应的这个方法了啊这块还可以看一下我们这个CPU相关的这个方法,这些结构呢,它占用的一个时间的一个多少是吧?哎,这块呢也有所呈现。那如果说这里边这个结构啊,我们这个代码比较复杂的话呢,这个是不是就非常多呀?诶所以这块呢,还支持一个设置,就是做一个数据的过滤,那比如我们只想过滤啊,像这个java.u秀点这个星是吧,我们看这个U秀下的哪些类的相关的结构,这个调用的时间比较长,占用细胞时间比较长了,哎,都可以过滤出来啊,这里边我们这个酶方法呢,因为是不是写这个sleep了啊,导致我们这个酶方法占用咱们这个西求的时间就比较长。
01:20
啊,像我们这写的五毫秒,实际上呢,对于一个程序来讲,那是比较耗时的,就啊行这呢是咱们说的这几个,呃,CPU的这样的一个材料。啊,那如果呢,大家发现我们整个这个,呃,生产环境的这个服务器呢,这个性能呢,呃,急速的变慢啊,CPU呢,这个运转的这个占有率呢也很高,那我们就可以通过这个CPU这个采样呢,看一看到底是什么原因造成的,那也可以呢,针对当前这个时刻呢,那比如说这个时刻过了这个村没这个店了,怎么办呢?我们是点一下快照啊,啊这个里边还可以把我们刚才这个当前这个时刻的CPU的,呃,这个采样的这样一个情况呢,我们进行一个这个快照截取,你也可以给它另存为啊给他存储起来。
02:01
啊,就是看一看是什么原因造成我们CPU呢,这个持续的这个占用比较高啊,然后呢,你看到这个方法之后呢,接下来你就进行一个分析啊,是不是这个程序里边写了一些阻塞式的一些方法,或者说造成一些死索等等的原因啊好,然后下边这个呢,叫内存的一个采样啊,这个内存采样之后呢,打开之后呢,大家会发现呢,其实是不是并不陌生啊。啊,这个咱们刚才呢,是不是也见过类似的这个显示了咱们,呃,是通过咱们前一章讲的这个杠黑这个操作是吧。杠黑to这个操作在这儿呢是吧?哎,我们能够看到当前我们这个进程当中呢,哪些结构的,呃,相关的实例数,以及它占用的字节数的一个从头到小的一个排列啊这块你看呈现的就比较清晰是吧?都在这儿呢啊呃,这个下边还每一个线程一个分配了,也是具体到这个线程层面啊,你看还是这个main线程比较多是吧?哎,这块呢,都是对于咱们如果发现这个程序当中这个一方面呢,出现OM了,哎,另外一方面呢,没有出现OM,但是我们发现这个for GC呢,这个次数比较多,那这时候呢,你就要看一看是不是存在这个内存在这个泄露问题。
03:07
啊,那这时候呢,我们就可以来定位这个啊,具体的线程当中,你看哪个线程相关的这个数据占用的情况比较多啊,这里边儿显然需要关注的就是它了,对吧?那也可以针对它呢,是不是进行一个快照啊啊点完快照之后呢,这个你也可以点右键进行一个保存是吧?哎,这就没问题了啊行,这个呢,就咱们说的这个关于CPU和内存的一个快照的一个截取的一个问题啊,这就说完了。啊,那这里边呢,像我们这个此时在这儿你双击呢,这块就不好使了,你看是吧,还不好使,嗯,这个咱们呢,就是具体的大家在生产环境中啊,基于呢,比如给你导出来这个大文件啊,就像我们刚才就稍微来个小总结啊啊基于我们导出的大文件啊,点一下大文件就有了,就它啊针对这个文件当中呢,我们查看一下啊说都有哪些类呀?啊这个类里边呢,这个相关的实例都有谁呀?啊比如这个string,你发现啊string比较多,我们双击一下。
04:01
这呢,是不是就呈现出来我们这个string的相关的这个实例了,那以及的话呢,我们可以是不是进行两个这个,呃,对MP,然后呢,用这两大文件呢,是不是我们还可以呢,是不是进行一个比较,刚才其实也说了是吧。啊,这个我们在在后边这个里边啊,我们点这个类,然后跟前面这个进行比较。啊,三十五三十五二十五行就它是吧,诶在这个比较的话呢,你看你多了哪些,然后对应的这个大小是什么,你看这里边明显的我们这个BAT,嗯,都是35分钟这个秒数呢,有点区别,它这个大小多了这么多,那我们比较关心的就是你看这两个结构,这个BAT呢,是字节数组,那咱们这个程序里边呢。呃,就是我们这个picture里边这个字节数组啊,那你看对应的这块也能够看到,就是我们这个picture这个类的这个实例是不是比较多呀,那它俩是一这个一对一的是吧,所以这个数量是一样的,所以呢,你要看到我们这个picture呢,那没有进行垃圾回收啊,也确实也回收不了它,造成了我们最终呢,可能会出现这个OM的问题是吧。
05:00
哎,就是这里边呢,就综合着大家要去使用啊,会去使用谁呢?呃,如果呢,你是这个程序呢,始终接受不了,看看是不是有思索,然后看一下我们这个CPU的这个占用,里边哪个方法呢,占的比较多,这个呢,你需要做一个关心是吧,这是关于这个程序呢,始终接受不了,然后内存占用,CPU占用比较高,然后这个内存这块呢,C啊,或者是这个forc多或者OM了,这个你要看这个内存情况,一个是看这一个呢,是看我们这个单文件还可以呢,进行多个大文件的一个比较啊,刚才都说了是吧,具体的话呢,你也可以啊,一个是双击啊,另外一个呢,还可以点邮件在实例视图当中进行查看啊,都是哪些对象啊,对象的详情啊,这里边全都有介绍。啊,应该说呢,我们这个微收VM的整体功能是比较强大的,哎,大家呢,需要掌握的最起码的一个可视化的一个工具就是微收VM啊,这个呢一定要会好,那么关于这个微收VM呢,咱们就先介绍到这儿啊。
我来说两句