Java教程

《Java数据结构及算法实战》系列004:程序性能的两种确定方式

本文主要是介绍《Java数据结构及算法实战》系列004:程序性能的两种确定方式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

本节是《Java数据结构及算法实战》系列的第4节,主要介绍程确定序性能的两种方式。

可以采用两种方法来确定一个程序的性能,一种是实验的方法,另外一种是分析的方法。

1. 采用实验的方式来确定程序的性能

在实际的工作中,采用实验的方式来测试程序的性能通常就是指性能测试(Performance Testing)。性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

举一个JDK性能测试的例子,该测试是通过在被测试的每个发行版上使用相同的Java字节码编译的Java程序来查看GC(垃圾回收器)的性能。为了保证测试受干扰的因素将降至最低,每次都使用相同的选项。每个发行版选取了最具代表性的三个版本,即JDK 8、JDK 14和JDK 15。性能测试结果如图1-4所示(数据越大性能越好)[1]

图片描述

2. 采用分析的方式来确定程序的性能

虽然采用实验的方式所获取测试数据,更接近实际程序的性能情况,但并非所有的场景都能采用实验的方式。比如,

  • 正在开发的一个新算法,这个算法还未正式开发完成;
  • 测试资源有限,并非任何人都具备性能测试的环境。

在上述的情况之下,使用分析的方法来确定程序的性能。所谓分析的方法,就是通过阅读程序代码,分析程序所使用的算法,来估算出程序的性能情况。

在本书,主要是采用分析的方式来确定程序的性能。

[1]数据来源https://kstefanj.github.io/2020/04/16/g1-ootb-performance.html

参考引用

  • 原本同步至:https://waylau.com/two-ways-to-determine-program-performance/
  • 本系列归档:https://github.com/waylau/java-data-structures-and-algorithms-in-action
  • 数据结构和算法基础(Java语言实现):https://item.jd.com/13014179.html
这篇关于《Java数据结构及算法实战》系列004:程序性能的两种确定方式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!