性能优化方法论
在优化前要考虑的三个问题
- 首先,判断性能优化是不是有效?优化后,能提升多少性能?
- 第二,性能问题通常都不是独立的,如果有多个性能问题同时发生,先优化哪一个?
- 第三,提升性能的方法并不是唯一的,当有多种方法可以选择时,你会选用哪一种?
评估性能优化的效果
三步走
1、确定性能的量化指标
2、测试优化前的性能指标
3、测试优化后的性能指标
性能的量化指标很多,比如cpu使用率、应用程序的吞吐量、客户端的请求延迟等都可以评估性能。
不能局限在单一维度上,至少要从应用程序和系统资源两个维度上来选择不同的指标
- 应用程序的维度,我们可以用吞吐量和请求延迟来评估应用程序的性能
- 系统资源的维度,我们可以用cpu使用率来评估系统的CPU使用情况
之所以选择这两个不通维度指标,是因为应用程序和系统资源这两者相辅相成的关系
好的应用程序是性能优化的最终目的和结果,系统优化总是为应用程序服务的。所以,必须要是用应用程序的指标,来评估性能优化的整体效果。
系统资源的使用情况是影响应用程序性能的根源。所以,需要用系统资源的指标,来观察和分析瓶颈的来源
多个性能问题同时存在,要怎么选择?
系统性能总是牵一发而动全身,所以性能问题通常也不是独立存在的。那么当多个性能问题同时发生的时候,应该去优化那一个?
在性能测试的领域,流传很广的一个说法是“二八原则”,也就是说8