这是我的答案副本:C++ Timer函数以纳秒为单位提供时间
对于Linux(和BSD),您希望使用clock_gettime().
#include <sys/time.h>
int main()
{
timespec ts;
// clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}
Run Code Online (Sandbox Code Playgroud)
对于Windows,您要使用QueryPerformanceCounter.QPC上有更多内容
显然在某些芯片组上存在QPC 的已知问题,因此您可能希望确保没有这些芯片组.此外,一些双核AMD也可能导致问题.请参阅sebbbi的第二篇文章,其中他说:
QueryPerformanceCounter()和QueryPerformanceFrequency()提供了更好的分辨率,但有不同的问题.例如在Windows XP中,所有AMD Athlon X2双核CPU都会"随机"返回任一核心的PC(PC有时会向后跳跃),除非您专门安装AMD双核驱动程序包来解决问题.我们还没有注意到任何其他具有类似问题的双+核CPU(p4 dual,p4 ht,core2 dual,core2 quad,phenom quad).
归档时间: |
|
查看次数: |
3498 次 |
最近记录: |