gpt4 book ai didi

windows - clock()、gettickcount()、QueryPerformanceCounter() 和 QueryPerformanceFrequency() 之间有什么区别?

转载 作者:可可西里 更新时间:2023-11-01 13:28:41 33 4
gpt4 key购买 nike

它们都提供毫秒分辨率吗?

最佳答案

不,它们没有毫秒精度。 clockGetTickCount 在大多数系统上具有 4 到 15 毫秒的精度。 QueryPerformanceCounter 的精度在微秒到纳秒范围内。

clockGetTickCount 的包装器,如果您使用的是 Microsoft 的 C 运行时库,如果您使用的是 MS 编译器,则可能是。 GetTickCount 返回一个以毫秒为单位的值,但它不会在一毫秒过去后增加一毫秒。它仅在系统时钟中断发生时递增,这是每 4 到 15 毫秒 - 通常约为 15 毫秒,但它可以由应用程序更改。这会影响整个计算机:它会影响线程调度,更频繁的中断开销也会为实际运行程序代码留下更少的 CPU 时间,所以除非你真的需要,否则不要这样做。如果您的计算机的滴答频率超过 15 毫秒,则表明其他一些应用程序修改了滴答中断频率。

QueryPerformanceCounter 使用系统上可用的任何高分辨率计时器。过去通常是根据处理器内部时钟周期的计数,所以会在 2-3GHz 或 0.5ns 左右进行计数。不幸的是,有些处理器会改变计数器在低功耗状态下的滴答速率,而在多 CPU 系统(即具有多个处理器插槽)中,如果 CPU 的速度不同,您就会遇到问题。 Windows 现在使用其他更可靠的来源,但它们的分辨率不如处理器。 QueryPerformanceFrequency 告诉您一秒钟内发生了多少次滴答。要获得毫秒数,请将 QPC 样本的差异乘以 1000,然后除以 QueryPerformanceFrequency 的结果。

关于windows - clock()、gettickcount()、QueryPerformanceCounter() 和 QueryPerformanceFrequency() 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559864/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com