編譯器

編譯器的指令排程,其主要目的為何?

  1. A即使程式的結果改變也無所謂,總之要減少指令的數量
  2. B在不改變結果的前提下重新排列指令,以填補等待時間
  3. C將要執行的指令,重新排成作業系統的排程器所選定的順序
查看答案與解析

正確答案:B. 在不改變結果的前提下重新排列指令,以填補等待時間

當讀取或乘法的結果無法立即使用時,若緊接著放置使用該結果的指令,CPU就得等待。指令排程會在遵守資料相依關係、不改變結果的範圍內,重新調整順序,把沒有相依的其他指令插入其間,以有效利用等待時間。對於依序執行的CPU,效果特別顯著。會改變結果的轉換是不被允許的,而作業系統的排程器是決定行程切換的,屬於不同的機制。

  • A. 會改變結果的轉換是不被允許的。
  • B. 正確。遵守相依關係來重新排列,填補等待時間。
  • C. 作業系統的排程器是決定行程切換的另一種機制。
練習這個領域 前往領域頁面

編譯器的其他題目

  1. 對上方函式最後的遞迴呼叫進行尾端呼叫最佳化,會有什麼效果?
  2. 關於編譯器與直譯器的差異,下列何者正確?
  3. 關於使用JIT編譯的執行環境之特徵,下列何者正確?
  4. 關於LLVM的基本架構,下列何者正確?
  5. 在指定編譯器最佳化等級的選項中,不進行最佳化的設定(-O0等)經常用於下列哪種情況?

這個領域的比較