软件程序性能衡量指标

如果抛开所有的内部技术因素,我们只看应用程序的性能指标,那么一般来说,程序的性能大体可以通过以下几个方面来衡量。

n 响应时间:系统对用户行为或者事件做出响应的时间。响应时间越短,性能一定越好,所以我们在系统设计过程中应该尽量采用异步处理方式,让用户能够尽快收到回执,这样用户体验会较好。

n 启动时间:应用系统从运行到可以正常处理业务所需要花费的时间,对于用户来说,肯定是越快启动越好,所以我们在系统设计过程中应该尽量采用异步加载数据的方式启动应用程序,避免等待所有数据加载完毕后才启动。

n 执行时间:一段代码从开始运行到运行结束,所使用的时间称为执行时间。对于执行时间,有些时候可能无法减少全局化的时间,但是可以通过把业务逻辑切分到多段连续的程序段中,让用户感觉执行时间减短了。

n 执行速度:程序的反应是否迅速,响应时间是否足够短。该指标与响应时间、执行时间是相关联的。

n 计算资源分配:计算资源,包括CPU、内存、磁盘等,如果其中的任何一项分配不合理,可能会导致整个系统始终处于计算资源紧张的情况下,这样对于整个系统的性能影响一定是毁灭性的。

n 内存分配:内存分配是否合理,是否过多地消耗内存或者存在泄漏,JVM性能也与内存分配有一定关系。

n 磁盘吞吐量:描述I/O的使用情况。IOPS(Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video OnDemand),则更关注吞吐量指标。每秒I/O吞吐量=IOPS×平均I/O SIZE。从公式可以看出,I/O SIZE越大,IOPS越高,那么每秒I/O的吞吐量就越高。因此,我们会认为IOPS和吞吐量的数值越高越好。实际上,对于一个磁盘来讲,这两个参数均有其最大值,而且这两个参数也存在着一定的关系。

n 网络吞吐量:描述网络的使用情况。网络中的数据由一个个数据包组成,防火墙对每个数据包的处理要耗费资源。吞吐量是指在没有帧丢失的情况下,设备能够接受的最大速率。其测试方法是:在测试中以一定速率发送一定数量的帧,并计算待测设备传输的帧,如果发送的帧与接收的帧数量相等,那么就将发送速率提高并重新测试;如果接收的帧少于发送的帧则降低发送速率重新测试,直至得出最终结果。吞吐量测试结果以“比特/秒”或“字节/秒”表示。

n 负载承受能力:当系统压力上升时,系统的执行速度、响应时间的上升曲线是否平缓。负载承受能力与计算资源、内存、磁盘、网络等多方面因素都有关联。


软件程序性能衡量指标

欢迎关注麦克叔叔每晚10点说,让我们一起交流与学习。