效能評估與效能剖析

每次呼叫在20 ns內完成的函式f被呼叫數百萬次。以在函式入口與出口插入記錄處理的檢測(instrumentation)式剖析器來量測。若每次呼叫的記錄處理合計需60 ns,且這些時間全部被計入f的時間,量測到的f的時間會是原本的幾倍?

  1. A3倍
  2. B4倍
  3. C不變(1倍)
查看答案與解析

正確答案:B. 4倍

量測到的f每次呼叫的時間,是原本的20 ns加上記錄的60 ns,成為80 ns,80÷20 = 4倍。像這樣量測用的機制改變了想量測之對象本身行為的現象,稱為探針效應(Probe effect)。記錄處理也會替換快取的內容,因此實際上可能會更慢。小函式很多的程式,可用取樣式量測時間的比例,或將量測本身的負擔扣除後再判斷。

  • A. 這是誤用了將記錄的60 ns除以原本20 ns所得的值(60÷20 = 3)。
  • B. 正確。(20+60)÷20 = 4倍。
  • 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是多少?

這個領域的比較