Google AdSense

2014年12月17日 星期三

在 Python 上用 __rdtsc,__cpuid 和 __rdtscp 測量效能的範例

說明

  • 根據 How to Benchmark Code Execution Times on Intel® IA-32 and IA-64 Instruction Set Architectures 這篇文章
  • 我寫了個 extension module 讓 Python 能用這些東西,僅在 Python 3.3 x64 版本測試過。Python 2 跟 Python 3 的 extension module 寫法不同,所以 Python 2 大概不能用;x86 版本請自行更換編譯相關設定跟參數,應該能用才對

下載

結果

  • loop_size: 0 >>>> variance(cycles): 943; max_deviation: 3882 ;min time: 237
    loop_size: 1 >>>> variance(cycles): 727; max_deviation: 3756 ;min time: 237
    loop_size: 2 >>>> variance(cycles): 906; max_deviation: 4209 ;min time: 237
    .........
    .........
    loop_size: 997 >>>> variance(cycles): 965; max_deviation: 3513 ;min time: 237
    loop_size: 998 >>>> variance(cycles): 825; max_deviation: 4125 ;min time: 237
    loop_size: 999 >>>> variance(cycles): 463; max_deviation: 3501 ;min time: 237

    total number of spurious min values = 20
    total variance = 1433
    absolute max deviation = 93813
    variance of variances = 38372287
    variance of minimum values = 5
    minimum value = 213

心得

  • 看起來結果不像 C 語言版本那麼好,100000 次測試還不一定抓的到最低值

資源

沒有留言:

張貼留言