00:00
好,那么这一章呀,咱们关于这个呃,图形化界面啊这样的一个维度上讲解GVM的一个监控和诊断工率呢,工具呢,基本上就算是告一段落了啊,但是在最后呢,这块我又呃列举了几个其他的工具啊,有的呢可能大家听说过,有的呢没有听说过啊,就怕呢,在面试当中有的时候也会给你问一嘴是吧?哎,你不至于说呢,一点也不认识啊,那这呢,我们除了上面几个主流的之外呢,咱们这块呢,哎,再说一下剩下的这几个。那首当其冲的话呢,哎,我们来看一看这个关于叫火焰图的一个说明。说呢,在追求极致性能的场景下,了解你的程序运行过程当中,CPU呢到底干什么很重要,那么火焰图呢,就是一种非常直观的展示CPU在整个生命周期过程当中时间分配的一个工具啊,这个横轴呢,其实就有一个时间了啊,那这个呢,主要是基于什么样场景,我们去使用这个火焰图呢?啊应该是这样子的哈,我们说呢,随着这个业业务的这个发展,哎,我们说呢,哎,这个使用接口来,这个使用接口提供的服务啊,对应的这个业务呢也越来越多啊,那有的时候呢,我们经常会收到这个甲方呢,提到说相关的这个,呃,业务当中这个接口啊,这个不是太稳定啊,那针对这个接口呢,我们也做了一些优化,但是感觉还不够。
01:19
啊,为了能够去,哎改善啊咱们这个,诶这个接口的这个性能啊,改善接口性能,然后找到这个性能瓶颈呢,哎,我们这时候就可以考虑使用这个火焰图。啊,可以考虑使用它啊,这里也提到说它是现代程,对于现代程序员来讲并不陌生,非常直观的显示出调用站当中的CPU的一个消耗的瓶颈。啊,这个呢,大家你是不是现在成员呢,就看这里边说的你应该不陌生是吧?哎,可能我知道很多同学呢,可能都没有接触过这个火焰图啊呃,那这个火焰图在网络当中关于他的这个讲解啊,大部分都是来自于这个人的一个博客啊呃,这个大家去网上你搜一搜就也知道啊基本上最终呢,这个在网上追踪的话呢,哎,这个咱们可以用咱们这个讲JJM的一个一个话叫什么呀,这个jc root是吧?哎,就是你各种追踪,最后呢,诶,基本上也都能追踪到这个人的这样一个博客这块。
02:11
啊,这里边呢,他对这个,诶火焰图这个讲解呢,呃,应该算是比较详细的啊,他有很多的这个相关的一些文章啊,做了一些这个说明啊是这样子的,那么这些火焰图啊,咱们在讲这个阿尔萨斯的时候呢,哎,是不是咱们最后生成的也是这样的一个火焰图是吧?啊这个火焰图呢,它这个是SVG啊这样的一个格式的啊打开。啊,这个咱们程序应该是给停了是吧?哎,我们得把它跑起来啊。哎,他这跑起来之后呢,我们这块呢,还得做一个这个设置才行是吧,啊GPS。好,然后呢,我们在Java看钢,这这个再把它起一下啊看阿尔萨斯。哎,然后对应的这个是4206啊。好,那这块还得稍微的呃,起一下才行,诶还挺快啊,那起完之后呢,这时候我们再把这个页面的刷新一下。
03:03
呃,可以了是吧,啊这呢就打开了啊,嗯,这里边的话呢,我们就能够看到啊,这样的一个一个的这个三焦色块啊注意这里边这个色块,这个颜色呢不重要啊,那这个颜色不重要,你说这个是绿的,这个是红的,这个是不是怎么着啊,这个没有关系,呃,咱们主要关注的是什么呀。哎,咱们主要关注的就是某一层上的这个调用站的一个时间占比。啊,时间占比,呃,那这里边儿就涉及到了说,哎,我们这里边这个每一个框,它表示的是什么呢?哎,我们说这里边这个每一个框啊,它表示的其实就是一个线程的一个战争。啊,这有一个线成的战针啊,你看这呢,对应的是我们这一个sleep这个方法是吧?啊那么这个纵轴的话呢,哎,这个纵轴的话呢,其实就是我们的函数的一个调用站啊,从下往上看是吧,就是个调用站,那么横轴的话呢,呃,你可以看到就是我们相关的呃,一个一个一个的这样的一个方法,它调用这个CPU的一个时间占比啊,或者你理解成横轴上其实就是一个时间轴对吧?那这里边我们就可以去分析呢,到底哪些这个占它占用的CPU这个时间比较长啊,你像这里边我们看到这个sleep这个方法。
04:08
啊,显然呢,你看它这个时间是不是占的就比较长一些是吧,点一下的话呢,就能进来了啊进来之后呢,它就呈现的就是它这个局部区域的哈,嗯,再点上这个凹呢,就又恢复了是吧?哎这样的情况,哎这呢我们就非常能清晰的看到这个sleep它的一个占比是不是要多一些是吧?哎这个呢,就提到我们这叫诶火焰图它的一个说明。啊,就是他啊行啊这个呢,我们就呃,简单的就给大家说一下啊,如果呢,大家需要用到的时候呢,你可以看这个人的这个博客啊,进行一个学习啊就行了啊这呢是关于火焰图的一个介绍。
我来说两句