引言
本文正在参与 “性能优化实战记录”话题征文活动
好久没写文章了,没写文章的原因主要是生病,但是自己说过的话要兑现,于是就有了这篇文章,那阅读这篇文章到底能获得什么呢?我可以简要的给大家说三点:优化思维,优化模式和结果分析。优化可不是随便进行的,是需要一套正确的方法论的,要抓住痛点问题进行针对性的解决,但也要注意是否会导致新的问题,我对优化的路线其实也在探索中,那就借着这篇文章来分享一下我对性能优化的看法。
优化思维
我们在进行任何行动之前,其实不是随便进行的,先做什么,后做什么,这都需要一套思维理论的支撑,在开始具体的优化之前呢,一定要对系统进行整体性的评估,万万不可为了优化而优化,这不光会给系统造成负担,同时还会给维护造成负担,而且当前的优化可能只是适用于当前的需求,一旦需求变动,复杂的优化将会严重限制业务的灵活可变性。
这个世界上没有一种思维可以解决所有问题,性能优化也是一样,随着技术的提升和硬件的改变,我们的优化策略和方案也在发生变化,可以这么说唯一不变的就是变化,但不论如何优化,如何选择,一定要有一个最重要的核心点支撑你的优化方案,就是你优化的一定是很多性能瓶颈影响最大的一块问题。
什么是影响最大,即解决这个问题之后获得的收益是最高的,甚至有可能会导致其它的问题不用于优化了,那如何判断哪个问题影响最大呢?那你就得把这些问题挨个分析,把问题抽象成指标,分别找出他们的瓶颈,再看看这些结果之间是否有因果关系,关联最大的就是我们首先要进行处理的。
如果互相之间都没有关联关系,那就需要分别进行测试,看结果定论了。
优化模式
优化过程中的方法选择也很重要,好的方法可以让你事半功倍,但是优化的方法的不论好坏的就像药一样,药能治病,但是能治同一种病的药可能有几十种,但是他们所带来的副作用是完全不同的,有的药见效快,但是副作用很大,性能优化领域也一样,选择最大提升性能的办法也意味着优化成本的提升,有时还会带来系统复杂度的提升,甚至可能影响一些其它的指标,所以在选择优化性能的方法上要慎重,要进行全方位的考虑与分析。
结果分析
就和我们有绩效一样,你的优化方案所带来的结果也同样有绩效标准,优化之前你要找到系统的瓶颈,而且还要对指标进行量化,到底优化到多少合适?也就是确定我们的优化目标。
关于目标的确定我们可以从系统和应用两个维度进行切入,应用关注的是什么?无非是低延迟和高吞吐,那系统呢?肯定就关注系统资源的占用呗,比如常见的CPU的使用率。也就是说我们的目标要站在用户的制高点去考虑优化。
有了需要量化的目标之后,就可以使用对比分析,将数据可视化,直观的反应出优化结果的影响程度,这才算优化的最终价值。