1.1 软件性能基础
1.1.1 软件性能的概念
软件性能是与软件功能相对应的一种非常重要的非功能特性,表明了软件系统对时间及
时性及资源经济性的要求。
1.1.2 不同角色对软件性能的理解
(1)系统用户:响应时间。用户执行一个功能操作后,到软件把本次操作的结果完全展示给用户所消耗的时间。
(2)系统运维人员:稳定,可扩展性。主要是性能调优。
(3)系统开发人员:架构,数据库,线程同步。
1.1.3软件性能的重要性
对于一个软件系统,运行时间执行速度越快、占用系统存储资源及其他资源越少,则软件性能越好。性能是软件所需要的资源和完成工作的时间,在功能相同的情况下,性能是衡量事情完成效果的一个重要因素。
1.2 常用性能指标
1.2.1 响应时间:用户感受到的软件系统为其服务所消耗的时间。 操作->应答。
三种情况:
闲时响应时间、忙时响应时间、峰时响应时间。
1.2.2 并发用户数:系统能够同时处理的用户请求的数目。
还有注册用户和在线用户数。
平均并发用户数:指系统正常访问量下的并发用户数。
最大并发用户数:指在峰值访问下的并发用户数。(反应了系统的处理能力,往往作为一项重要的性能指标在需求分析时进行定义)。
1.2.3 吞吐量 :指单位时间内系统处理的客户请求数量。以Byte为单位。
RPS :请求数/秒。 每秒内能够处理的最大请求数量。
PPS :页面数/秒。 每秒内能够显示的页面数量。
PV :页面数/天。 每天总的Page View 数量。
TPS :事物/秒。 每秒能够处理的事物数量。
QPS :查询/秒。 每秒能够处理的查询请求数量。
1.2.4 服务器性能计数器。
一些数据指标,在性能测试中发挥着监控和分析的关键作用。
1.3软件性能的影响因素
以web信息系统为例,会影响整体访问性能的因素有可能包括以下几个方面:
(1)客户端计算机硬件配置。
(2)客户端并发执行情况。
(3)浏览器软件性能。
(4)服务器端硬件配置。
(5)Web服务器软件、应用服务器软件、数据库服务器软件的性能。
(6)系统缓存机制。
(7)系统程序性能。
(8)数据库设计方案的合理性。
(9)数据库访问语句的性能。
(10)数据量的大小。
(11)客户端网络带宽。
(12)服务器端网络带宽。
(13)当前系统的并发用户数。
1.4 软件性能生命周期模型
性能需求分析:首先需要根据系统的业务特点制定明确的性能需求,为系统的设计和性能测试提供依据。
概要设计:针对系统性能要求,从数据结构、软件架构、部署结构等方面进行系统的设计工作。
详细设计:从单元粒度、算法逻辑复杂度、变量定义等方面进行系统的设计工作。
性能测试:根据不同的阶段,可以将性能测试分解为单元性能测试、集成性能测试和系统性能测试。
1.5你对性能测试的理解
性能测试是验证系统性能是否达到性能需求要求的测试活动,一般情况下性能测试专指在系统测试阶段进行的性能测试。然而,系统性能问题都是在系统设计和开发的各个环节引入的,相同的缺陷在不同的阶段发现,修复缺陷所需要付出的代价差异极大,而且有些缺陷只有在某些阶段才容易发现,如果在系统测试阶段由于性能未满足要求再进行问题的定位,将非常困难。所以在单元测试和集成测试阶段也需要针对性进行专门测试,以尽早的发现系统中有可能存在的性能瓶颈,尽早的进行性能优化,降低系统发生性能问题的可能性。