剛做了一個實驗,並且估計執行時間,很令人驚喜的發現,哈~其實理論早就知道了,所以比較【變數相乘】和【常數相乘】的執行速度,當然是……
#變數相乘
long long n,a=999999999,b=999999999; for(int i=0;i<100000000;i++) n=a*b;
結果:
0.85833857846392903000
請按任意鍵繼續 . . .
#常數相乘
long long n; for(int i=0;i<100000000;i++) n=999999999*999999999;
結果:
0.28977542136063456000
請按任意鍵繼續 . . .
由實驗得知,在同一台電腦上,【常數相乘】比【變數相乘】快足足三倍!原因是變數還要替換成常數,才來做乘法,而常數可以直接做乘法。
Comments on: "[C++] 變數相乘vs常數相乘的速度 (Variable vs Constant)" (2)
請問一下,每個loop都在重覆並無累加,而且最後計算的結果也會相同,要如何從return n看出運算速度?為什麼結果會小於1而不是天文數字呢?
讚讚
呵~我沒把所有程式碼列出來,其實出來的結果是「秒」,不是n的值喔!
至於怎麼計算執行時間,可看這一篇:計算程式執行時間 (Compute Time of Execution)
讚讚