效能評估與效能剖析
測量程式的執行時間時,常會重複同樣的測量多次,並排除最初的幾次結果,其理由下列何者正確?
- A因為最初的幾次,運算結果一定是錯的
- B因為一開始快取是空的,或會進行檔案讀取、執行時期編譯等而較慢,而且測量也會有變動
- C因為重複相同的測量,CPU會製造出變快的電路
查看答案與解析
正確答案:B. 因為一開始快取是空的,或會進行檔案讀取、執行時期編譯等而較慢,而且測量也會有變動
第一次執行時,快取、TLB與分支預測器是從空的狀態開始,檔案不在作業系統的快取中而必須從磁碟讀取,使用JIT編譯器的語言還會進行轉換為機器碼的處理。因此最初的幾次會比較慢。此外,測量也會因其他程式、中斷、溫度造成的頻率變化等而產生變動,所以重複測量許多次,並呈現平均值、中位數與變動幅度是很重要的。
- A. 結果是正確的,只是時間不同。
- B. 正確。這稱為暖機(warm-up)。
- C. 電路不會改變。