效能評估與效能剖析
一邊逐漸增大陣列的大小,一邊測量重複讀取陣列的處理每個元素所需的時間,發現每到某些大小,時間就會階段性增加。其理由下列何者正確?
- A因為陣列越大,CPU的頻率一定會下降
- B因為每當陣列依序超過L1、L2、L3快取的容量,資料就會改從更慢的記憶體讀取
- C因為加法的結果會隨陣列的大小而改變
查看答案與解析
正確答案:B. 因為每當陣列依序超過L1、L2、L3快取的容量,資料就會改從更慢的記憶體讀取
陣列小的時候可放入L1快取而能快速讀取,但超過L1的容量後會從L2讀取,再超過L2或L3後就得從主記憶體讀取,每一次都會使每個元素的時間階段性增加。用這種測量方式,可以大致調查快取的容量與各自的速度。也能了解為何將程式重複使用的資料大小(工作集,working set)收納在快取內,對效能有很大的影響。
- A. 頻率不是由陣列的大小決定的。
- B. 正確。記憶體階層的容量會表現為階梯狀的落差。
- C. 運算的結果不會改變。