在 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 次測試還不一定抓的到最低值
資源
沒有留言:
張貼留言