System software developer需要比較CPU之間的效能,藉此了解system software在不同CPU上的效能,更進一步決定是否要更換hardware platform的CPU,我們今天會介紹在不同CPU之間比較效能的工具: Benchmark。
Benchmark是一種藉由量測程式運行時間以比較CPU效能的application software。
Benchmark包含了測試程式與計時功能兩大部分
例如: 有一個系統常需要運作遞迴函數,可以選用一種遞迴函數阿克曼函數作為benchmark,計算執行一次阿克曼函數需要多少CPU clock數量
有些CPU製造商提供的system software會辨認benchmark程式,特意對其compilation進行特殊最佳化或在運作時提升CPU clock rate,特殊的optimization造成的benchmark結果會使benchmark誤判CPU有較佳的效能而誤導分析比較。
Benchmark雖然最初是模仿software的行為模式開發,但software長期的開發流程可能會和benchmark的行為有越來越大的差異,如果benchmark和software的行為模式差距過大,則benchmark的效能測試結果就無法代表software實際上的效能。
Benchmark通常是單一程式單獨執行,鮮少和system software、其他application software互動。因為缺乏上述互動,benchmark通常難以包含system software造成的overhead。