編譯器
關於使用剖析資料的最佳化(PGO)的說明,下列何者正確?
- A將程式的原始碼重新整理成易讀格式的功能
- B編譯器以亂數選擇多種最佳化方法並比較結果的功能
- C利用以具代表性的輸入執行時的紀錄,再次進行編譯
查看答案與解析
正確答案:C. 利用以具代表性的輸入執行時的紀錄,再次進行編譯
在PGO中,首先將插入了量測用指令而編譯好的程式以具代表性的輸入執行,記錄哪個分支經常被通過、哪個函式經常被呼叫等。接著利用這些資訊重新編譯,把常走的路徑排成一直線,或將經常被呼叫的函式行內展開,進行符合實際使用方式的最佳化。要注意的是,若輸入與實際使用方式差異很大,效果就會減弱。它不是原始碼的整理,也不是以亂數來選擇。
- A. 原始碼的整理是其他工具的工作。
- B. 不是以亂數選擇,而是利用執行的紀錄。
- C. 正確。利用執行的紀錄來重新編譯。