一、软件性能的定义
软件性能是指计算机系统在特定任务或应用场景下执行操作的速度、效率和稳定性,通常由硬件配置、软件优化以及系统设计共同决定。
性能是软件系统的一种质量属性,是一种典型的非功能性需求。Bug是把一件事情做错了,性能问题是事情虽然作对了,但是做的很慢,主观上已经无法接受,需要改进。
二、性能的特点
。性能是主观的
。性能是复杂的
。可能有多个问题并存
三、衡量性能的常用指标
。延迟(Latency):数据从发送到接收的总时间
。吞吐量:单位时间处理的任务量(如请求/秒)
。响应时间:系统从输入到反馈的时间,比如使用搜索引擎从输入关键字到反馈结果的耗时;使用银行APP完成一笔转账的耗时登。
。IOPS:每秒读写操作次数
四、性能问题分析的方法

通用系统软件技术栈
现在的软件系统比较复杂,调用链路很长,涉及第三方公司,网络运营商,本公司的多个应用,每个应用又涉及多套物理设备,比如计算集群、存储设备、网络设备等,本文的方法聚焦性能问题已经定位到了具体的某个服务存在性能问题。
如上图所示,软件性能问题可能出现在任何地方,如何识别性能瓶颈所在的地方是解决性能问题对的关键所在。每个分层涉及的技术不一样,使用的分析和定位工具,表示性能的指标也不一样,需要综合多方面的知识,包括存储、网络、操作系统、中间件、数据库等知识,需要深入程序代码层面了解程序逻辑,使用的算法、使用的数据结构等,因此性能分析是一项综合的、复杂的工作,也是体现一个人技术水平的不二法门。
主要的性能分析方法如下,每种方法的使用场景,使用步骤可自行查找资料,在此不做详述。