Just My Life & My Work

剛做了一個實驗,並且估計執行時間,很令人驚喜的發現,哈~其實理論早就知道了,所以比較【變數相乘】和【常數相乘】的執行速度,當然是……

#變數相乘

	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)

  1. 林高遠 的大頭貼

    請問一下,每個loop都在重覆並無累加,而且最後計算的結果也會相同,要如何從return n看出運算速度?為什麼結果會小於1而不是天文數字呢?

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲