奇怪的GetTickCount问题

时间:2012-12-20 21:55:21

标签: c++ windows time unix-timestamp

我正在构建一个简单的控制台c ++应用程序。当我在一台 Windows XP的机器上运行它时,我得到了输出。看起来不错。

  

TickTime:134993550

     

TickTime:134993560

当我在 Windows Server 2008 R2 的另一台机器上运行它时,我得到以下输出,我不明白它是怎么回事?

  

TickTime:654336178

     

TickTime:654336194

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

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

}

5 个答案:

答案 0 :(得分:2)

检索自系统启动以来经过的毫秒数,最多49.7天。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms724408(v=vs.85).aspx

答案 1 :(得分:2)

  

我可以使用什么函数来获取unix时间戳/纪元时间

为此,您可以使用time()等人:

http://msdn.microsoft.com/en-us/library/1f4c8f33.aspx

答案 2 :(得分:1)

我没有看到这个问题。 GetTickCount()返回自系统启动以来的时间,没有绝对的。在任何一种情况下,差异都是几个刻度(10,分别为16),所以它看起来很好。

答案 3 :(得分:0)

我认为这个问题的提问者感到困惑的是XP机器似乎比服务器机器更快地执行代码。这个难题的答案很复杂,有许多变量,但是要说出两个最大的变量:硬件资源差异和工作负载差异(两者上还运行了什么)。此外,如果你让它运行一段时间,并加载其他程序等...我想你会发现那些“抽搐”不会保持静止......

简单地说,服务器可能有更好的硬件,但是如果它运行的是一堆可以影响它的软件。

答案 4 :(得分:0)

所以,你可能想要 GetSystemTime