C在Windows上获取系统时间微秒准确性?[英] C get system time to microsecond accuracy on windows?

本文是小编为大家收集整理的关于C在Windows上获取系统时间微秒准确性?的处理方法,想解了C在Windows上获取系统时间微秒准确性?的问题怎么解决?C在Windows上获取系统时间微秒准确性?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

可能的副本:
用C ++中的微秒分辨率测量时间?

嗨,

有没有一种简单的方法可以在Windows机器上获得系统时间,直到微秒准确性?

推荐答案

查看getSystemTimeasFiletime

它为您提供0.1微秒或100纳秒的精度.

请注意,这是与Posix时期不同的时期.

因此,要在微秒中获得POSIX时间:

    FILETIME ft;
    GetSystemTimeAsFileTime(&ft);
    unsigned long long tt = ft.dwHighDateTime;
    tt <<=32;
    tt |= ft.dwLowDateTime;
    tt /=10;
    tt -= 11644473600000000ULL;

所以在这种情况下time(0) == tt / 1000000

其他推荐答案

喜欢这个

unsigned __int64 freq;
QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
double timerFrequency = (1.0/freq);

unsigned __int64 startTime;
QueryPerformanceCounter((LARGE_INTEGER *)&startTime);

//do something...

unsigned __int64 endTime;
QueryPerformanceCounter((LARGE_INTEGER *)&endTime);
double timeDifferenceInMilliseconds = ((endTime-startTime) * timerFrequency);

其他推荐答案

我们真正需要的是高分辨率GetTickCount().据我所知,这实际上并不存在.

如果您愿意使用hackish的方法来解决此问题(这可能只能在XP等某些版本上使用),请在此处查看本文地址:https://www.itbaoku.cn/post/359070.html