概述
基準程式(benchmark)是為評估一台機器而執行的程式。通常,基準程式是一個生產程式(production program),它代表了安裝時的很多工作。評估人員非常熟悉現有設備上的基準程式的性能,因此,當它在新設備上運行時,評估人員可以得出有意義的結論。一些組織,諸如標準性能評估公司(Standard Performance Evaluation Corporation,SPEC;WWW.specbench.org)和商業套用性能測試公司(Business Application PerformanceCorporation,BAPCo:WWW.bapco.com),已經開發了適用於不同系統(例如,Web伺服器或個人計算機)的工業標準的基準程式。評估人員可以運行這些基準程式來比較不同廠商生產的相似系統。
基準程式評估的一個優點是目前已有很多這樣的基準程式,因此評估人員只需從已知的生產程式中選擇它們,或者使用工業標準的基準程式。這種方法不用對各指令進行計時,而是讓整個程式在真實的機器上用真實的數據運行,因此計算機完成了絕大部分工作。人工錯誤的機會被最小化,因為基準程式的時間是由計算機本身測量的。在諸如多道程式系統、分時系統、多處理系統、資料庫、數據通信和實時系統等環境下,基準程式特別有用,因為它們在真實環境中的真實機器上運行。這些複雜系統的效果可以直接體驗到,而不是通過估計。
開發基準程式時應考慮若干標準。首先,測試結果應該是可重複的;特別是,在相同的系統上運行基準程式時,每次產生的結果應接近相同。運行結果不一定相等,而且也很少會相同,因為一些環境相關的細節(諸如一個數據項在磁碟上的存儲位置)會影響運行結果。其次,基準程式應準確反映在真實系統上執行的應用程式的類型。最後,基準程式應當得到廣泛使用,以便可以對系統作出更準確的比較。一個良好的工業標準的基準程式將具備所有這些性質,然而,後面兩個標準往往會導致衝突的設計決策。某個系統專用的基準程式,可能無法廣泛使用;而一個旨在測試多個系統的基準程式,對某個特定的系統可能不能產生準確的測試結果。
基準程式不僅適用於評估軟體,而且也適用於評估硬體,甚至可以評估它們在複雜操作環境下的性能。它們也特別適合於比較對系統作出某些變更前後系統的操作。然而,基準程式不適合預測計畫變更的效果,除非存在另一個系統也作了相同的變更,並且基準程式可以在它上面運行。
當組織和消費者決定從若干競爭廠商那裡購買哪種設備時,基準程式可能是最廣泛使用的技術。由於這種廣泛性,產生了行業標準的基準程式的需求。SPEC成立於1988年,為了推動標準的、相關基準程式的制定。SPEC公布了各種基準程式(通常稱為SPECmarks),它們可用來評測各種各樣的系統(從伺服器到Java虛擬機),並且公布了用那些SPECmarks測試上千個商業系統的性能結果。有了SPEC評估,就可以作出基於可靠信息的決策,決定採購哪些計算機元件。然而,在評估特定的平台時,首先必須認真確定每次SPECmark測試的核心。例如,SPECweb測量那些通常運行Web伺服器的系統,而不應當用它們來比較在不同環境中執行的系統。29如果某個特定的Web伺服器的環境不同於一個“典型的”環境,則SPEC評估可能不恰當。此外,SPEC的某些基準程式因適用範圍狹窄而受到批評,尤其是受到那些懷疑“典型”負荷可以準確地近似一個特定系統的真實工作量的假設的人的批評。為了突破這樣的限制,SPEC不斷地重新設計基準程式,以改進它們與當前系統的相關性。
除了著名的SPEC和它的基準程式以外,還有許多其他流行的基準程式和基準測試組織。這其中包括BAPCo,它也產生了幾個基準程式,包括流行的Sysmark基準程式(適用於桌面系統)、MobileMark(適用於安裝在移動設備上的系統)和WebMark(適用於Internet性能測試)。其他流行的基準程式包括事務處理性能委員會(Transaction ProcessingPerformance Council,TPC)基準程式(以資料庫系統為目標),以及標準套用(StandardApplication,SAP)基準程式(適用於評估系統的可伸縮性)。
SPEC基準程式系列
SPEC基準程式系列是由名為Standard Performance Evaluation Corporation作盈利公司所開發的。SPEC強調開發實際套用基準程廳以求更確切地反映實際工作負載,而不採用小的合成核心。對每個基準程式和基準程式組,SPEC定義了少量的(大多數情況為2個)指標以測量整個系統的總性能。
SPEC以測量CPU性能的基準程式作為出發點,但已向客戶機/伺服器計算,商業套用以及I/O廣系統等方面擴展。目前SPEC已公布如下的基準程式組:
SPEC 95:測量CPU、存儲器系統和編譯器代碼生成性能。
SPEC hpc 96:測量運行工業型應用程式的高性能計算系統的性能。目前它包括兩個基準程式:地震處理基準程式SPEC seis 96和計算化學基準程式SPEC chem 96。
SPEC web 96:測量基於由現實世界WWW伺服器運行記錄而獲得的工作負載的Web伺服器性能。
SFS:為系統級檔案伺服器基準程式,它包含有LADDIS基準程式並測量不同負載情況下的NFS檔案伺服器的回響時間和吞吐率。
SDM:為系統開發多仔務基準程式,測量一個系統如何處理一個有大量用戶發出典型的Unix軟體開發命令(如make、cp、grep及spell等)的環境。它含有兩個由Unix shell腳本構成的多用戶Unix命令基準程式。
GPC:圖形性能特徵描述基準程式,測量圖形學性能。它包含3個正在不斷發展的研究項目。圖片級基準程式(Picture Level Benchmark,PLB)測量“每秒向量數”和“每秒多邊形數”圖形處理能力、X性能特徵描述(X Performance Characterization,XPC)項目開發了Xmark 93基準程式測試工具以測量X視窗性能。Open GL性能特徵描述(Open G1 Performance Characterization,OPC)項目已開發了Viewperf基準程式以測量Open GL性能。