00:00
好各位,那接下来的话呢,我们来看一下第四个问题,叫做性能优化的步骤,那刚才呢,我们也看到大厂面试题当中会问到说性能优化该如何展开进行,我们说这个问题呢,其实比较大,那其中一个角度呢,就是大家可以通过呃,这个步骤呢来进行展开说明,这儿呢,我列举出来性能优化的步骤呢,分成三步。哎,分成三步,那分别对应的是第一步叫发现问题,第二步呢叫做排查问题,第三步呢叫解决问题,注意如果大家呢,从这三步的角度去展开说明性能优化的话呢,呃,建议你啊,不要用我刚才说的这三个词,就是小括号里边这仨词,为什么呀。显得比较low是吧,显得比较low之所以low呢,是因为咱们生活当中,大家凡是遇到问题,咱们是不是全都是这样的三个步骤啊。你在路上开车呢,那突然这个车停了,那这里边发现问题车停了不走了,对吧,那下边呢,我们就要排查问题啊,看了各种各样的指标,最后发现没油了。
01:00
那那知道没油了,下边怎么办啊,解决问题加点油就好了,对吧,哎,这呢就是我们说生活当中都是如此,所以呢,你说这三个词呢,显得比较low,不高大上,反人觉得说没什么特别的,怎么办呀,我们说后边的这三个词啊,后边这三个词大家呃一块也记一记,首先呢,就说我们说。性能调优啊,性能优化我们第一步啊,要进行性能的一个监控,诶我们发现这样这样这样这样一些问题是吧,发现这些问题以后怎么办呢?我们要进行性能的一个分析了啊,怎么分析啊啊这样这样这样这样这样我们提到相关的一些工具,那这些呢,是不是都是我们第二章和第三章给大家展开要讲解的一些工具啊。好,那基于这些工具呢,哎,我们说接下来我要进行新能的一个调优了,哎,我们要怎么办呢?哎,这样这样这样这样这样相关的一些措施和方案,这个问题一说完,是不是就感觉你的思路非常的严谨清晰,有逻辑有经验啊。啊,那这个问题呢,要这样去答。对吧,好,那下边呢,咱们具体来看一看啊,比如第一步呢,我们叫性能的一个监控。
02:03
哎,叫性能的监控监控,你看这里写,哎,你就是你你要对这个性能监控是不是要简单的稍微的描述一下是吧,说一种啊,以非强行或者入侵的方式收集或者是查看啊,应用运行的这应用运营的性能的一些数据的活动。啊注意呢,我们这里边是一个叫非强行的方式,那对应的我们的性能分析实际上就是一种强行的方式啊呃,就是我们会发现呢,呃,咱们这个GC啊非常频繁对吧?就好比你这个开车的时候呢,这个车呢,怎么开着开着呃一停一停的,这就是你被动的发现的一些场景,一些这个这个情况是吧,这种被动的这种行为呢,其实就类似于我们这里边这种叫非强行的这种方式啊CC很频繁,CPU呢漏的过高,出现OM了,出现内存泄露了,死锁了,程序呢,显应时间比较长了,是不是这都是我们被动的,是不是发现的一些情况收集或者查看到的对吧。好,那么监控呢?通常是一种在生产质量评估或者开发环境下实施的带有预防或者主动性的活动。
03:06
啊,主动发生了啊这样啊,那相关的干系人呢,我们说在这个提出性能问题,但是呢,你没有发现有足够多的线索的时候呢,那首先呢,我们要进行一个监控是吧?要进行监控,哎发现这样的一些场景了,那这块呢,大家是不是你这些也要稍微记一记啊,你说我们这个首先呢,通过性能监控啊,发现了这个内存泄露了,哎发现出现死锁了,那发现这个OM了,CPU漏的过高了,然后下边呢,我们要进行一个性能的分析。啊,那下边呢,来谈一谈性能分析的问题,对吧。好,那性能分析啊,我们说是一种侵入的方式,主动的去收集,呃,这个运行的过程当中性能的相关的一些数据。那既然你主动呢去收集的,不管你使用图形化界面也好,使用命令行空工具也好啊,它会影响我们程序的一个吞吐量,或者叫响应时间。啊,会这样子的,这个大家要注意一下啊,那这里呢,相应的我们使用这些工具有什么呢?比如说针对于我们这个JC日志啊,咱们可以啊提到了这是咱们后边第五章要讲的,通过JCV啊或JCEZ啊,哎,我们进行JC日志的一个分析,哎,查看一下这个JC的情况,存储量啊,响应时间啊,这样的一些指标,然后呢,我们还可以使用相关的咱们在第二章当中要讲的的一些命令行的一些工具。
04:18
啊,包括这个dump,对于转储文件啊,这个用命令行或者是用我们的这个呃,Ji的一些工具都可以进行分析啊还有呢,我们阿尔萨斯啊,呃,J康素啊,这维素VM啊,这个我们第三章当中都会去讲解,对吧?哎,就是我们通过这样的一些方式呢,去进行一个性能的分析。分析的最终目的呢,是为了进行调优。对吧,诶分析的目的呢,是进行调优,好那家说这个调优的话呢,诶这块还有一个事儿哈,就是性能分析呢,大家看到这个呢,说通常是在我们系统测试或者开发环境下进行的。啊,在开发环境下进行的啊,就是我们相当于在生产环境下的时候呢,在生产环境之前,开发环境当中我们进行一个性能的分析啊,因为它毕竟呢,会影响是不我们程序的一个呃,响应时间吞吐量是吧?哎,我们不可能在生存环境下频繁的进行这样的这个操作了啊。
05:08
好,那下边呢,是我们说的一个叫性能的调优啊,为了改善应用的一个响应时间,它的一个存储量,我们去改变相应的参数,源代码属性配置啊等等的活动啊,是这样子的啊,那最终的目的呢,咱就希望呢,是不是减少一下这个JC是吧。啊,减少GC出现的这个频率啊,以及呢,咱们这个叫for j c的它的一个出现的次数啊,获得呢,呃,以较小的内存占用,是不是获得较高的吞吐量或者是响应时间啊。啊,或者叫较低的一个延迟性是吧,哎,这样的一些情况啊,这呢就是我们调约的一个目的。再说一遍啊,我们性能调的目的呢,就是减少JC的一个频率啊,和这个for jc的一个出现次数,以较小的一个内存啊来获得较高的一个,哎,这个响应时间存储量啊,或者叫较低的一个延迟,延迟性是吧,哎,响应时间延迟性啊都可以一个意思啊。
06:04
啊,这是我们说的这样的三个步骤。大家呢,需要通过刚才这样一个讲解呢,你把它也要记一记啊,那总的来说啊,咱们没有叫什么呀,一招先式的叫性能调优的秘籍,或者包罗万象的这个性能的一个百科啊说呢让你呃,通过这个知识的一个学习,摇身一变就变成一个JC调优的一个老手了没有啊这个大家注意我们说这个JC调优啊,这个你去看各种这个网络,呃,这个中的一些这个这个比如说像腾讯的那个大神是吧?哎,在讲这个JC调的时候呢,呃。都提到了一个点,就是说我们没有一招先试的JC调的这个这个办法或一套解决方案,哎,我们需要怎么着呢,要具体问题具体分析。呃,具体的这个生这个生产实验场景我们需要呢,呃,具体的根据相关的这样的一些监控的一些呃数据啊,使用相关的工具呢,进行一个排查啊,最后呢,我们找到相关的解决方案啊,只有具体问题具体分析啊,那从这个角度上来讲的话呢,我们说这个这个性能强化,其实呃,从一旦一定程度上来讲,更像是一门艺术是吧?呃,它属于一门技艺了啊这个嗯。
07:10
不断的关心这些的一个持续的演进啊,积极的去探索它的设计原理啊,这个这个设计目标,哎,然后呢,让你这个记忆呢,就越来越精湛啊,是这样来说,感觉非常的悬是吧?啊也就是说呢,需要大家通过生产实践呢,去多增加这个经验啊,你才可以啊基于你的经验呢,去更好的解决问题啊是这样子的。好,这呢,就是我们说的这个性能优化的一个步骤啊,这个大家记一下,这个需要你记一下。
我来说两句