效能評估與效能剖析

一邊逐漸增大陣列的大小,一邊測量重複讀取陣列的處理每個元素所需的時間,發現每到某些大小,時間就會階段性增加。其理由下列何者正確?

  1. A因為陣列越大,CPU的頻率一定會下降
  2. B因為每當陣列依序超過L1、L2、L3快取的容量,資料就會改從更慢的記憶體讀取
  3. C因為加法的結果會隨陣列的大小而改變
查看答案與解析

正確答案:B. 因為每當陣列依序超過L1、L2、L3快取的容量,資料就會改從更慢的記憶體讀取

陣列小的時候可放入L1快取而能快速讀取,但超過L1的容量後會從L2讀取,再超過L2或L3後就得從主記憶體讀取,每一次都會使每個元素的時間階段性增加。用這種測量方式,可以大致調查快取的容量與各自的速度。也能了解為何將程式重複使用的資料大小(工作集,working set)收納在快取內,對效能有很大的影響。

  • A. 頻率不是由陣列的大小決定的。
  • B. 正確。記憶體階層的容量會表現為階梯狀的落差。
  • C. 運算的結果不會改變。
練習這個領域 前往領域頁面

效能評估與效能剖析的其他題目

  1. 下列何者是表示程式在CPU上執行時間的基本公式?
  2. 以平均CPI為2、時脈頻率為2 GHz的CPU,執行一個包含10億個指令的程式。執行時間是多少?
  3. 因CPU設計變更,時脈頻率變為1.5倍,但CPI也增加為1.2倍(指令數相同)。執行速度會變為原來的幾倍?
  4. 透過編譯器的新最佳化,執行的指令數減少了20%,但平均CPI增加了10%(頻率相同)。關於這項最佳化的效果,下列何者正確?
  5. 某程式的指令比例為:整數運算50%(CPI 1)、載入與儲存30%(CPI 2)、分支20%(CPI 5)。平均CPI是多少?