該C++程序從20至25秒至我的相對慢的計算機上運行時:簡單算術運算之間運行時差異的主要原因是什麼 - VBA與C++?
#include <iostream>
int main()
{
int i;
double test = 456;
for (i = 0; i < 900000000; i++) {
test = (test/0.99999999);
}
std::cout << "The value of test is " << test <<".\n";
return 0;
}
這個Excel VBA宏從37至40秒至我的相對慢的計算機上運行時:
Sub Macro1()
Dim i As Long
Dim test As Double
test = 456
For i = 0 To 900000000
test = (test/0.99999999)
Next i
Cells(1, 1).Value = test
End Sub
這是典型的(C++還是非編譯語言)的區別?造成這種時間差異的主要因素是什麼? C++編譯是否是最重要的因素?謝謝。
信息:
對於C++我使用的代碼::塊與GCC
對於VBA我用Excel 2010中
代碼:: Blocks的它有一個內置的定時器,在它的控制檯。
爲Excel我用了一個iPhone秒錶(沒感覺就像使用CHighResTimer http://www.ozgrid.com/forum/showthread.php?t=56900)
你是如何計時的?你是單獨計算操作的時間,還是計劃整個過程的運行? – Void
顯然,這是因爲循環的VBA運行900000001次迭代,而C++的for循環只做900000000. –
@Void我定時整個程序運行時間。另請參閱信息中添加的信息: – Stepan1010