,软件性能测试也更关心“应用延迟时间”。实际上,这种分解还可以继续下去,如果该网站系统使用了数据
f库,我们可以把“数据库延迟时间”分离出来,如果该网站系统使用了中间件,还可以把“中间件延迟时间”也分离出来。
以上的时间分解实际上有两方面的目的。首先,人们通常希望把与所开发软件直接相关的延迟时间和与所开发软件爱你不直接相关的延迟时间分离开,因为改善前者往往需要开发人员修改程序代码,而改善后者不需要开发人员修改代码,很多时候,开发人员对后者甚至是无能为力的。其次,详细的分解有助于开发人员分析哪些部分是影响软件性能的主要因素,以便于实时性能改善方案。
13、吞吐量
吞吐量是指系统在单位时间内处理请求的数量。对于无并发的应用系统而言,吞吐量与响应时间成严格的反比关系,实际上此时吞吐量就是响应时间的倒数。前面已经说过,对于单用户的系统,响应时间(或者系统响应时间和应用延迟时间)可以很好地度量系统的性能,但对于并发系统,通常需要用吞吐量作为性能指标。
对于一个多用户的系统,如果只有一个用户使用时系统的平均响应时间是t,当有你
个用户使用时,每个用户看到的响应时间通常并不是
×t,而往往比
×t小很多(当然,在某些特殊情况下也可能比
×t大,甚至大很多)。这是因为处理每个请求需要用到很多资源,由于每个请求的处理过程中有许多不走难以并发执行,这导致在具体的一个时间点,所占资源往往并不多。也就是说在处理单个请求时,在每个时间点都可能有许多资源被闲置,当处理多个请求时,如果资源配置合理,每个用户看到的平均响应时间并不随用户数的增加而线性增加。实际上,不同系统的平均响应时间随用户数增加而增长的速度也不大相同,这也是采用吞吐量来度量并发系统的性能的主要原因。一般而言,吞吐量是一个比较通用的指标,两个具有不同用户数和用户使用模式的系统,如果其最大吞吐量基本一致,则可以判断两个系统的处理能力基本一致。
14、并发用户数
并发用户数是指系统可以同时承载的正常使用系统功能的用户的数量。与吞吐量相比,并发用户数是一个更直观但也更笼统的性能指标。实际上,并发用户数是一个非常不准确的指标,因为用户不同的使用模式会导致不同用户在单位时间发出不同数量的请求。一网站系统为例,假设用户只有注册后才能使用,但注册用户并不是每时每刻都在使用该网站,因此具体一个时刻只有部分注册用户同时在线,在线用户就在浏览网站时会花r