性能优化公式与实践

前言

“性能优化“相信是每个程序员都关心的问题,在实际工作中也常会对系统做优化。关于性能优化有两个问题很值得探讨:

  • HOW:影响性能的因素很多,该从何入手?找到需要优化的点后,如何进行优化?
  • WHY:优化后为什么能提升性能?为什么有些优化点更值得做?

至于WHAT,我认为是不言而喻的,性能优化的终极目标只有两点:QPS和RT,可以说所有优化最终都是为了这两个指标。

本文讨论的核心内容是几个与性能相关的公式,比如QPS公式、RT公式、线程数公式等。熟悉这几个公式能让我们抓住系统性能的底层逻辑,有助于在实践过程中对症下药。这些公式在一些性能相关的书籍里都有出现,公式提供了很好的理论支持,但关于如何实践的文章并不多。

本文先对公式进行简单推导和验证,熟悉的同学可以跳过这部分。

  • 针对HOW:本文会通过一个线上应用的优化案例,尝试探讨出一套可参照的实践流程。
  • 针对WHY:在公式验证和实践中,对实际优化结果结合公式进行定量计算,解释类似如下问题——为什么做了一个优化,QPS能提升100或者50%?

PS:个人水平有限,难免出现纰漏,欢迎指正。

公式推导

本小节对几个核心公式进行简单推导,帮助尚不太了解的同学弄清来龙去脉。

QPS和RT

前文提到,QPS和RT是性能优化的终极目标。其中QPS(Query per second)描述了单位时间内系统的吞吐量,而RT长短则反应了接口响应速度。提升QPS能帮助我们利用更少的机器资源扛住更多的流量,而降低RT能提升用户体验。

单线程QPS公式

image.png | left | 195x62

在单线程下,这个公式永远正确。而我们的系统都是多线程的,所以我们需要知道多线程的QPS如何计算。

多线程QPS公式

很简单,就是单线程的QPS * 线程数:
image.png | center | 830x90

可以看到,多线程下的QPS和两个因素相关:RT和线程数,接下里分别讨论下RT和线程数。

转载于:https://my.oschina.net/u/3611008/blog/1837079

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值