什么是软件的性能

上传人:woxinch****an2018 文档编号:38493791 上传时间:2018-05-03 格式:PDF 页数:16 大小:1.49MB
返回 下载 相关 举报
什么是软件的性能_第1页
第1页 / 共16页
什么是软件的性能_第2页
第2页 / 共16页
什么是软件的性能_第3页
第3页 / 共16页
什么是软件的性能_第4页
第4页 / 共16页
什么是软件的性能_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《什么是软件的性能》由会员分享,可在线阅读,更多相关《什么是软件的性能(16页珍藏版)》请在金锄头文库上搜索。

1、 - 1 - 1.1 什么是软件的性能什么是软件的性能 1.1.1 软件软件 1.1.2 软件软件性能的产生性能的产生 - 2 - 一般来说,性能首先是一种指标,表明软件系统或构件对于其及时性一般来说,性能首先是一种指标,表明软件系统或构件对于其及时性要求的符合程度;其次是软件产品的一种特性,可以用时间来进行度量。要求的符合程度;其次是软件产品的一种特性,可以用时间来进行度量。 性能的及时性用性能的及时性用响应时间响应时间或或吞吐量吞吐量来衡量。来衡量。 响应时间是对请求做出响应所需要的时间。响应时间是对请求做出响应所需要的时间。 对于单个事务, 响应时间就是完成事务所需的时间; 对于用户任务

2、,响应时间体现为端到端的时间。比如, “用户单击 OK 按钮后 2 秒内收到结果”就是一个对用户任务响应时间的描述,具体到该用户任务中,可能有多个具体的事务需要完成,每个事务都有其单独的响应时间。 对交互式的应用(如典型的 Web 应用)来说,一般以用户感受到的响应时间来描述系统的性能;而对非交互式应用(如嵌入式系统或银行等的业务处理系统)而言,响应时间是指系统对事件产生响应所需要的时间。 1.1.3 功能与性能的关系功能与性能的关系 - 3 - - 4 - 表 1-1 功能测试与性能测试的区别 通常,对软件性能的关注是多个层面的对软件性能的关注是多个层面的。用户、管理员和产品的开发人员都关注

3、软件性能,那么这些不同的关注者所关注的“性能”的具体内容是不是完全相同呢?如果不同,这些不同又在哪里?而作为软件性能测试工程师,不同层面的软件性能都需要关注,在关注全部层面的性能体现的时候,又应该注意哪些内容呢? 1.1.4 用户视角的软件性能用户视角的软件性能 - 5 - - 6 - - 7 - - 8 - 从用户的角度来说,软件性能就是软件对用户操作的响应时间。从用户的角度来说,软件性能就是软件对用户操作的响应时间。说得更明确一点,对用户来说,从单击一个按钮、发出一条指令或是在 Web 页面上单击一个链接开始,到应用系统把本次操作的结果以用户能察觉的方式展示出来的过程所消耗的时间就是用户对

4、软件性能的直观印象。图 1.1以一个 Web 系统为例,说明了用户的这种印象。 图 1.1 Web 系统的响应 必须要说明的是,用户所体会到的响应时间既有客观的成分,也有主观的成分。例如,用户执行了某个操作,该操作返回大量数据,从客观的角度来说,事务的结束应该是系统返回所有的数据,响应时间应该是从用户操作开始到所有数据返回完成的整个耗时;但从用户的主观感知来说,如果采用一种优化的数据呈现策略,当少部分数据返回之后就立刻将数据呈现在用户面前,则用户感受到的响应时间就会远远小于实际的事务响应时间(这是在 C/S 结构的管理系统中常用的一种技巧) 。 用户感受到 响应用户应用界面应用服务器DB服务器

5、 返回数据呈现请求发出请求- 9 - - 10 - 1.1.5 管理员视角的软件性能管理员视角的软件性能 从管理员的角度来看, 软件系统的性能首先表现在系统的响应时间上,从管理员的角度来看, 软件系统的性能首先表现在系统的响应时间上,这与用户视角一致。这与用户视角一致。但管理员是一种特殊的用户,和一般用户相比,除了和一般用户相比,除了会关注一般用户的体验之外,还会关心和系统状态相关的信息。会关注一般用户的体验之外,还会关心和系统状态相关的信息。例如,管理员已经知道在并发用户数为 100 时,A 业务的响应时间为 8 秒,那么此时的系统状态如何?服务器的 CPU 使用是否已经达到了最大值?是否还

6、有可用的内存?应用服务器的状态如何?设置的 JVM 可用内存是否足够?数据库的状况如何?是否还需要进行一些调整?这些问题不在一般用户的体验范围之内,但对管理员来说,要保证系统的稳定运行和持续的良好性能,就必须关心这些问题。 另一方面,管理员还会想要知道系统具有多大的可扩展性、处理并发的能力如何、系统可能的最大容量是什么、系统可能的性能瓶颈在哪里、通过更换哪些设备或是进行哪些扩展能够提高系统性能等。了解了这些情况,管理员才能根据系统的用户状况制定管理措施,在系统出现计划之外的用户增长等紧急情况时能够立即制定相应措施,进行迅速的处理。此外,管理员可能还会关心系统在长时间的运行中是否足够稳定,是否能

7、够不间断地提供业务服务等。 因此,从管理员的视角来看,软件性能不仅仅是应用的响应时间这么一个简单的问题。管理员关注的部分性能相关问题,如表 1-2 所示。 表 1-2 管理员关注的部分性能相关问题 管理员关心的问题 软件性能描述 服务器的资源使用状况合理吗 资源利用率 应用服务器和数据库的资源使用状况合 理吗 资源利用率 系统是否能够实现扩展 系统可扩展性 系统最多能支持多少用户的访问?系统 最大的业务处理量是多少 系统容量 系统性能可能的瓶颈在哪里 系统可扩展性 更换哪些设备能够提高系统性能 系统可扩展性 系统能否支持 7 24 小时的业务访问 系统稳定性 - 11 - 1.1.6 开发视角

8、的软件性能开发视角的软件性能 - 12 - - 13 - - 14 - 从开发人员的角度来说,对软件性能的关注就更加深入了。开发人员会关心主要的用户感受响应时间,因为这是用户的直接体验;也会关心系统的扩展性等管理员关心的内容,因为这些也是产品需要面向的用户(特殊的用户) 。但对开发人员来说,其最想知道的是如何通过调整设计和代码实现、系统设置等方法提高软件的性能表现,以及如何发现并解决软件设计和开发过程中由于多用户访问引起的缺陷。因此,其最关注的是使其最关注的是使性能表现不佳的因素和由于大量用户访问引发的软件故障,也就是通常所性能表现不佳的因素和由于大量用户访问引发的软件故障,也就是通常所说的性

9、能瓶颈和系统中存在的在大量用户访问时表现出来的缺陷。说的性能瓶颈和系统中存在的在大量用户访问时表现出来的缺陷。 例如,对于一个没有达到预期性能规划的应用,开发人员最想要知道的是该性能的表现究竟是由于系统架构选择的不合理,还是由于代码实现的问题、数据库设计的问题,抑或是由于系统的运行环境引发的。 - 15 - 又如,对于一个即将发布到现场给用户使用的应用,开发人员可能会想要知道当大量用户访问该系统时,系统会不会出现某些故障,如是否存在由于资源竞争引起的挂起,是否存在由于内存处理等问题引起的系统故障等。 因此,对开发人员来说,单纯获知系统性能“好”或者“不好”的评价并没有太大的意义,他们更想知道的

10、是哪些地方是引起不好的性能表现的根源,或是哪里可能存在故障发生的可能。 开发人员关注的部分软件性能问题如表 1-3 所示。 表 1-3 开发人员关注的部分性能问题 开发人员关心的问题 问题所属层次 架构设计是否合理 系统架构 数据库设计是否存在问题 数据库设计 代码是否存在性能方面的问题 代码 系统中是否有不合理的内存使用方式 代码 系统中是否存在不合理的线程同步方式 设计与代码 系统中是否存在不合理的资源竞争 设计与代码 1.1.7 Web 前端性能前端性能 前端性能,尤其是 Web 前端性能,已经成为目前 Web 应用性能主要被关注的部分之一。随着 Web 应用开发技术的改变,Web 应用

11、响应时间的构成越来越复杂,Ajax 等大量前端技术的应用使得服务端的响应时间在用户感受到的响应时间中所占的比例越来越小。在这种情况下,Web 前端性能越来越受到关注。 Web 应用的前端响应时间指浏览器的页面加载时间。应用的前端响应时间指浏览器的页面加载时间。一般而言,浏览器的页面加载时间包括对 HTML 的解析、对页面上的图片及 CSS 等文件的获取和加载、客户端脚本(JavaScript)的执行时间以及对页面进行展现所花费的时间,这部分性能体现就被称为前端性能。与对应的服务端性能不同,前端性能的产生主要与浏览器的页面元素加载、客户端代码执行以及页面展现相关,与服务器本身并无太大的关系。 -

12、 16 - 脚下留心:脚下留心: Web 前端响应时间主要是浏览器的展现和浏览器端脚本 (如 JavaScript 脚本)执行所消耗的时间,严格上来说,这个时间并非与服务端的性能毫 无关系。例如,大多数 Ajax 应用都会使用 JavaScript 从服务器获取数据, 获取数据所需要消耗的时间显然是依赖于服务端性能的。然而,大多数情 况下,由于 Ajax 本身的异步机制,这些时间消耗并不构成前端响应时间的 主要部分,因此在讨论 Web 前端性能时,并不特别关注这部分时间。 与服务端性能不同,前端性能与并发用户量的大小并无非常直接的关系。由于前端性能考察的主要是浏览器的展现和脚本执行时间前端性能

13、考察的主要是浏览器的展现和脚本执行时间,通常对前端性能的关注主要在浏览器展现页面的方式、浏览器各种机制的合理应用及脚本的合理性上。概括来说,如何提高浏览器下载和执行资源的并发性,如何让浏览器尽快开始渲染页面,如何让浏览器尽可能充分地利用缓存等问题是前端性能关注的主要问题。 总结:总结: 从项目管理的角度,以系统干系人来分析,大部分用户对性能的理解属于“用户视角” ,项目的维护人员或用户方的项目经理一般会从“管理员视角”来看待软件性能的问题,而项目的创建者开发人员(包括设计人员)自然就是从“开发视角”和“前端性能”来关注软件性能了。 对软件性能测试来说,在不同的层面上要求我们关注不同的内容: 从直接体验的用户的角度来说, 表现为软件系统对用户操作的响应时间; 在系统或管理员的关注层面, 还需要从软件的性能表现分析系统的可扩展性、并发能力等指标; 从开发人员的角度来说,还需要为软件性能问题进行定位,了解性能的制约因素和引起性能问题的关键原因。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 高中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号