測試For Loop內若使用到常數時,將常數移出迴圈外,程式執行效能是否有所改變.
編譯環境為:
LabVIEW 2013 (32 - bit)
Windows 8 64-bit
第一個程式的比較非常單純 , 迴圈轉1000次,每次累加20,差別只有20放回圈外面或裡面 |
直接比較binary,可以看出LabVIEW compiler後的machine code是有差別的 |
看起來差在記憶體位置的位移,使用不同的register做某種資料的運算 , 至於是甚麼運算就去沒有深入了解.到此為止的運算上所需時間是一樣的. |
真正的主角是在後面這段 , 迴圈轉1000次 , 每次累加20 (14H) , 比較是否少於1000次,若成立就繼續做
|
第二個程式的比較稍微 , 迴圈轉1000次,每次累加20,多做其他運算 |
Binary的比較,可以看出跑的code size沒變 , 執行運算時間看來是一樣的. |
列出所有差異的部分 |
結論:為了程式碼美觀,常數就放在迴圈裡面吧
沒有留言:
張貼留言