1. 引言
在实践中经常会遇到需要进行系统性能优化的场景,通常系统性能优化的主要目标是提高系统的吞吐量,那么,系统的吞吐量与哪些因素有关呢?如何评估?是否有方法论可循?作为一名进阶路上的工程师,这三个问题你可曾思考过、总结过?如果在面试中遇到这样的提问,你是否能从容应对?
2. 单线程 RT
RT(Response Time)即响应时间,是评估软件系统性能的重要指标之一。RT 可以简单地理解为系统从输入到输出的时间间隔,系统可以指一个网站或者一个其它类型的软件应用,也可以指某个设备(比如手机,手机界面也有响应时间)。RT 本身是一个比较宽泛的概念,不过,在本文中 RT 特指互联网应用。对于服务端,RT 是指从服务器接收请求到响应该请求的全部数据被发往客户端。对于客户端,RT 是指从客户端(如浏览器)发起请求到客户端接收到响应该请求的全部数据并完全呈现的时间间隔,如下公式:
客户端的 RT = 服务器端的 RT + 网络传输时间 + 客户端呈现时间
其中,客户端呈现时间是指客户端(如浏览器)在接收到响应数据后呈现页面所需的时间,它与客户端处理器和软件应用性能有关。网络传输时间是指数据(包括请求数据和响应数据)在客户端和服务器端进行传输的时间,它与网络带宽有关,鉴于此,系统性能测试一般强调要在局域网中进行,因为局域网一般不会受到数据带宽的限制。
客户端的 RT 直接影响到用户体验,要降低客户端 RT 从而提升用户体验,通常必须考虑两点:一是服务