2012-12-20 23 views
0

我正在構建一個簡單的控制檯C++應用程序。當我在一臺機器上運行它是Windows XP我得到輸出。看起來不錯。奇怪的GetTickCount問題

滾動時間:134993550

滾動時間:134993560

當我運行相同的到另一臺機器是的Windows Server 2008 R2上我獲得以下輸出,我不明白它是如何能是嗎?

滾動時間:654336178

滾動時間:654336194

#include <iostream> 
#include <windows.h> 
using namespace std; 

int main() 
{ 
    int i=0; 
    while(i<100000){ 
     cout << " TickTime :" << GetTickCount(); 
     i++; 
    } 

} 
+0

你在問自己的數字嗎?它返回自計算機啓動以來的毫秒數。 – chris

+3

你能解釋一下你對第二個例子感到迷惑嗎? – NPE

+0

@NPE我的壞。我以爲它會給我unix時間戳。我可以使用什麼函數來獲得unix時間戳/新紀元時間。 –

回答

1

我沒有看到這個問題。 GetTickCount()返回系統啓動以來的時間,絕對沒有。在任何一種情況下,差異都是幾滴(10,16),所以看起來很好。

0

我認爲這個問題的提問者很困惑,XP機器似乎比服務器機器更快地執行代碼。這個難題的答案很複雜,有很多變量,但要說出兩個最大的問題:硬件資源差異和工作負載差異(兩者正在運行)。此外,如果你讓它運行一段時間,並加載其他程序等...我想你會發現那些「抽動」不會保持靜態...

簡而言之,服務器大概可能會有更好的硬件,但是如果它運行的是一堆可以影響它的軟件。