效能評估與效能剖析
以效能計數器發現分支預測錯誤非常多。下列何者是適用的改善方法?
- A在迴圈中再增加分支
- B將資料排序,使分支的結果更容易預測,或是以條件選擇或運算來消除分支本身
- C減少快取的容量
查看答案與解析
正確答案:B. 將資料排序,使分支的結果更容易預測,或是以條件選擇或運算來消除分支本身
一旦分支預測錯誤,CPU就必須丟棄推測性執行的指令並重新來過,每次會損失十幾個週期以上。若資料是隨機的,像「值在128以上的話」這類分支的結果就無法預測。若事先將資料排序,結果會趨於一致而使預測容易命中;若改用條件選擇指令或位元運算來撰寫,分支本身就會消失。也可以促使編譯器進行這類轉換。
- A. 預測錯誤可能會更多。
- B. 正確。使其容易預測,或是消除分支。
- C. 與分支預測無關,而且效能會下降。