2013年11月13日 星期三

[原創] Constant inside/outside loops

測試For Loop內若使用到常數時,將常數移出迴圈外,程式執行效能是否有所改變.

編譯環境為:
LabVIEW 2013 (32 - bit)
Windows 8 64-bit


第一個程式的比較非常單純 , 迴圈轉1000次,每次累加20,差別只有20放回圈外面或裡面


直接比較binary,可以看出LabVIEW compiler後的machine code是有差別的

看起來差在記憶體位置的位移,使用不同的register做某種資料的運算 , 至於是甚麼運算就去沒有深入了解.到此為止的運算上所需時間是一樣的.



真正的主角是在後面這段 , 迴圈轉1000次 , 每次累加20 (14H) , 比較是否少於1000次,若成立就繼續做
PS. jl (jump on less than, signed)


第二個程式的比較稍微 , 迴圈轉1000次,每次累加20,多做其他運算

Binary的比較,可以看出跑的code size沒變 , 執行運算時間看來是一樣的.


列出所有差異的部分


結論:為了程式碼美觀,常數就放在迴圈裡面吧


沒有留言:

張貼留言