软件质量属性之性能
耿晴
(石家庄铁道大学信息科学与技术学院软件工程系;河北省石家庄市; 050000)
摘要:性能是一个软件架构的重要指标,从用户的角度来看对于一个运行速度很慢的软件是很难长久地存在的,所以软件的性能的优化对于软件的存亡有着至关重要的作用。本文从开发人员视角、用户视角、管理人员视角、web前端写起,使读者对其有初步的认识和了解。只有合理地遵循质量属性原则,才能开发出更好的产品
关键词:软件架构;质量属性;性能优化;web前端;
Performance of software quality attributes
Geng Qing
(Department of Software Engineering, School of Information Science and Technology, ShijiazhuangRailway University; Shijiazhuang City, Hebei Province; 050000)
Absrtact: Performance is an important indicator of software architecture. From the perspective of users, it is difficult for a slow running software to exist for a long time, so the optimization of software performance plays a vital role in the survival of software. This article starts with six quality attributes, namely usability, modifiability, performance, safety, testability, and usability, to provide readers with a preliminary understanding and understanding of them. Only by following the principle of quality attributes reasonably can better products be developed
Key words: software architecture; Quality attributes; Performance optimization;
概述:性能:表明软件系统或构件对于其及时性要求的符合程度;可以用时间来度量。
性能的及时性:用响应时间或吞吐量来衡量;
响应时间:对请求做出响应所需要的时间;对于单个事务,响应时间是完成事务所需的时间;对于用户任务,响应时间体现为端到端的时间,比如“用户单击‘确定’按钮后两秒内收到结果”。
一、不同角色视角的软件性能
(一)、用户视角的软件性能:
对于交互式的应用来说,一般以用户感受到的响应时间来描述系统的性能。即最为直观的感受的web应用的响应速度的快慢,用户感受的时间包括用户计算机和网站服务区通信的时间、网站服务器处理的时间、用户计算机浏览器构造请求解析响应数据的时间。
对于非交互式应用而言,响应时间是指系统对事件产生响应所需要的时间。
(二)、管理员视角的软件性能:
软件系统性能首先提现系统的响应时间上,管理员是一种特殊的用户,和一般用户相比,除了会关注一般用户体验之外,还会关心和系统状态相关的信息;
另一方面还会想要知道系统具有多大的可扩展性、处理并发的能力如何,系统可能的最大容量是什么、系统可能的性能瓶颈在哪里、通过更换哪些设备或者进行哪些扩展能够提高系统性能等。
之后还需要关心系统在场时间运行中是否足够稳定是否能够不间断的提供业务服务等。
(三)、开发视角的软件性能:
主要关心用户的感受——响应时间,因为这是用户的直接体验;’也会关心系统管理员关心的内容,因为这些也是产品需要面向的用户;但对开发人员来说,其实最想知道的是如何通过调整设计和代码实现、系统设置等方法提高软件的性能表现,以及如何发现并解决软件设计和开发过程中由于多用户访问引起的缺陷。因此最关注的是使性能表现不佳的因素和多用户访问引发的软件故障,而应用程序本身及其相关子系统的性能也是开发人员关注的一大方面,其包括响应延迟、系统吞吐量、并发处理能力、系统稳定性等技术指标。
对于开发人员来说,单纯获知系统性能“好”或者“不好”的评价没有太大的意义,他们更想知道的是:哪些地方是引起不好的性能表现的根源,或者哪里可能存在故障发生的可能,或者是如何优化系统的性能延长应用的寿命。
二、Web前端性能
web应用的前端响应时间指的是浏览器的页面加载时间,主要指的是页面元素的加载、客户端点执行以及页面展现相关,与服务器本身和并发用户量的大小并没有太大直接关系。
前端性能关注的主要问题:如何提高浏览器下载和执行资源的并发性、如何让浏览器尽快开始渲染页面、如何让浏览器尽可能充分的利用缓存。
三、性能优化
对于前端来所,网络耗时、页面加载耗时、脚本执行耗时、渲染耗时情况会影响以哦那个胡的等待时常,而CPU占用、内存占用、本地缓存占用等则可能会导致页面卡顿甚至卡死,因此,性能优化可以分别从耗时资源占用两方面解决,也可以将其称为‘时间’‘空间’两个维度。
(一)、时间角度优化:减少耗时
浏览器在页面加载过程中,会进行以下步骤:网络请求相关、浏览器解析HTML渲染页面、加载JavaScript代码时会暂停页面渲染。
在浏览器的首次加载和渲染完成之后,不代表用户就可以马上交互和操作。根据业务代码加载过程,页面还会分别进入开始渲染、渲染完成、用户交互等阶段。除此之外,页面交互过程中,会根据逻辑进行逻辑元素,页面更新等任务。
根据这个过程,我们可以从四个方面进行耗时优化:网络请求优化、首屏加载优化、渲染过程优化、计算/逻辑运行提速
(二)、空间角度优化:降低资源占用
提到性能优化,大多数我们都在针对页面加载耗时进行优化,对资源占用的优化会更少,因为资源占用常常直接受到用户设备性能和适应场景的影响,大多数情况下优化效果会比耗时优化局限,因此这里只能说些大概的思路。
资源占用常见的优化方式包括:合理使用缓存,不滥用用户的缓存资源,即使进行缓存整理;避免存在内存泄漏,比如尽量减少全局变量的使用,即使解除引用等;避免复杂的递归调用,调用栈的一处;通过使用数据结构享元的方式,减少对象的创建,从而减少内存的占用。
参考文献
[1] 李智慧.大型网站技术架构.北京:电子工业出版社,2001,8.
[2] Steve Souders 高性能网站建设指南.北京:电子工业出版社
[3] 木子飞——什么是软件性能
标签:性能,论文,用户,响应,软件,属性,优化,页面 From: https://www.cnblogs.com/gnn40036/p/17319068.html