奇怪的gettickcount问题

Strange GetTickCount Issue

本文关键字:问题 gettickcount      更新时间:2023-10-16

我正在构建一个简单的控制台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++;
    }
  
}

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

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

我可以使用什么功能来获取UNIX TIMESTAMP/EPOCH TIME

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

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

我看不到问题。GetTickCount()返回系统启动以来的时间,没有绝对的时间。无论哪种情况,差异都是几个tick(10,分别为16),因此看起来不错。

我认为这个问题的要求感到困惑,因为XP计算机似乎比服务器计算机更快地执行代码。该难题的答案很复杂,有许多变量,但要列举两个最大的:硬件资源差异和工作负载差异(两者在两个上运行)。另外,如果您让它运行一段时间并加载其他程序等...我想您会发现这些"抽动"不会保持静态...

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

所以,您可能想要getSystemtime