【Java數據結構及算法實戰】系列004:程序性能的兩種確定方式

本節是《Java數據結構及算法實戰》系列的第4節,主要介紹程確定序性能的兩種方式。

可以採用兩種方法來確定一個程序的性能,一種是實驗的方法,另外一種是分析的方法。

1. 採用實驗的方式來確定程序的性能

在實際的工作中,採用實驗的方式來測試程序的性能通常就是指性能測試(Performance Testing)。性能測試是通過自動化的測試工具模擬多種正常、峯值以及異常負載條件來對系統的各項性能指標進行測試。負載測試和壓力測試都屬於性能測試,兩者可以結合進行。通過負載測試,確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統各項性能指標的變化情況。壓力測試是通過確定一個系統的瓶頸或者不能接受的性能點,來獲得系統能提供的最大服務級別的測試。

舉一個JDK性能測試的例子,該測試是通過在被測試的每個發行版上使用相同的Java字節碼編譯的Java程序來查看GC(垃圾回收器)的性能。爲了保證測試受干擾的因素將降至最低,每次都使用相同的選項。每個發行版選取了最具代表性的三個版本,即JDK 8、JDK 14和JDK 15。性能測試結果如圖1-4所示(數據越大性能越好)<sup>[1]</sup>。

雖然採用實驗的方式所獲取測試數據,更接近實際程序的性能情況,但並非所有的場景都能採用實驗的方式。比如,但並非所有的場景都能採用實驗的方式。比如,images/post/20211220-g1-ootb.png)

2. 採用分析的方式來確定程序的性能

雖然採用實驗的方式所獲取測試數據,更接近實際程序的性能情況,但並非所有的場景都能採用實驗的方式。比如,但並非所有的場景都能採用實驗的方式。比如,

  • 正在開發的一個新算法,這個算法還未正式開發完成;
  • 測試資源有限,並非任何人都具備性能測試的環境。

在上述的情況之下,使用分析的方法來確定程序的性能。所謂分析的方法,就是通過閱讀程序代碼,分析程序所使用的算法,來估算出程序的性能情況。

在本書,主要是採用分析的方式來確定程序的性能。

<sub>[1]數據來源https://kstefanj.github.io/2020/04/16/g1-ootb-performance.html</sub>

參考引用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章