繁体   English   中英

QueryPerformanceCounter() 将在多长时间内返回 32 位机器的正确值(没有溢出)?

[英]How long will QueryPerformanceCounter() return the correct value for 32 bit machine (without overflows)?

QueryPerformanceCounter 是否会为运行了一个月甚至几个月或几年的 32 位计算机返回正确的值?

谢谢

Microsoft 保证 QueryPerformanceCounter 不会在启动后 100 年内翻转:引用https://docs.microsoft.com/en-us/windows/win32/sysinfo/acquiring-high-resolution-time-stamps#general-faq-关于 qpc 和 tsc

QPC多久翻转一次?

从最近的系统启动起不少于 100 年,并且根据使用的底层硬件计时器可能更长。 对于大多数应用程序,翻转不是问题。

您不能仅从 QueryPerformanceCounter 生成 64 位值这一事实推断出这一点。 用于实现 QPC 的硬件时钟的范围可能要小得多,而 Windows可能只是将该时钟零扩展至 64 位。 这在您询问的较旧的 32 位系统上尤其合理。 仅应依赖翻转间隔的明确文档。

QueryPerformanceCounter 不返回值,它需要一个指向大型 integer 的指针。 这个大的 integer 是什么取决于您编译应用程序的目的。

x86 中的这个大 integer 大小至少为 64 位,带有普通的 Visual Studio windows.h 头文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM