Google AdSense

2014年12月2日 星期二

用 RDTSC,CPUID 和 RDTSCP 測量效能的範例

說明

  • 根據 How to Benchmark Code Execution Times on Intel® IA-32 and IA-64 Instruction Set Architectures 這篇文章

下載

結果

  • Loading hello module...
    loop_size:0 >>>> variance(cycles): 2; max_deviation: 4 ;min time: 44
    loop_size:1 >>>> variance(cycles): 27; max_deviation: 1556 ;min time: 44
    loop_size:2 >>>> variance(cycles): 234861; max_deviation: 153248 ;min time: 44
    .........
    .........
    loop_size:997 >>>> variance(cycles): 22; max_deviation: 1412 ;min time: 44
    loop_size:998 >>>> variance(cycles): 40; max_deviation: 1388 ;min time: 44
    loop_size:999 >>>> variance(cycles): 3; max_deviation: 4 ;min time: 44

    total number of spurious min values = 0
    total variance = 34752
    absolute max deviation = 1477968
    variance of variances = 495049069215
    variance of minimum values = 0

心得

  • 看起來還過得去,至少最小結果都相同。變異數雖然很大,代表每次的測量誤差很高,不過 100000 次的測量能得到這結果也還可以啦。順帶一提,原文的測量結果變異數僅有 2,代表每次的測量誤差僅有 1.4 個 cycle,非常準確

資源

沒有留言:

張貼留言