0

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

滴答时间: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++;
    }
  
}
4

5 回答 5

2

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

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

于 2012-12-20T21:57:49.390 回答
2

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

为此,您可以使用time()et al:

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

于 2012-12-20T22:02:04.360 回答
1

我没有看到这个问题。GetTickCount() 返回系统启动后的时间,不是绝对的。在任何一种情况下,差异都是几个滴答声(10 个,分别是 16 个),所以看起来不错。

于 2012-12-20T21:57:56.293 回答
0

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

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

于 2012-12-20T22:01:28.260 回答
0

所以,你可能想要 GetSystemTime

于 2012-12-20T22:06:02.043 回答