效能評估與效能剖析

程式很慢,但CPU使用率只有20%左右。最可能的原因為下列何者?

  1. ACPU的運算太快
  2. B程式的指令數太少
  3. C因為等待磁碟或網路的輸入輸出、等待鎖定(lock)等,不使用CPU而在等待的時間很長
查看答案與解析

正確答案:C. 因為等待磁碟或網路的輸入輸出、等待鎖定(lock)等,不使用CPU而在等待的時間很長

如果CPU使用率很低但程式很慢,可以認為大部分時間是在等待CPU以外的某些東西,例如磁碟的讀寫、網路的回應、其他執行緒持有的鎖定被釋放等。在這種情況下,即使讓CPU更快,或是將運算的程式碼最佳化,效果也幾乎不大。將輸入輸出集中處理、改為非同步以便在等待期間處理其他事情、縮小鎖定的範圍等作法都很有效。

  • A. 太快不會成為緩慢的原因。
  • B. 指令少不會成為緩慢的原因。
  • C. 正確。即使讓CPU更快也無法解決。
練習這個領域 前往領域頁面

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

  1. 為了確認某程式是運算受限(compute-bound)還是記憶體受限(memory-bound),改變CPU的頻率來測量執行時間。若為記憶體受限,一般會得到怎樣的結果?
  2. 在屋頂線模型(Roofline model)中,得知某處理位於受記憶體頻寬限制的區域時,提升效能的方向下列何者正確?
  3. STREAM基準測試主要測量的是下列何者?
  4. 調查平行程式的可擴展性(scalability)時,下列方法何者最適當?
  5. 以8個核心平行執行後,比1個核心時快了6倍。平行效率是多少?