GetThreadTimes如何报告休眠时间?

时间:2015-07-06 13:13:49

标签: c windows winapi

我目前正在使用GetThreadTimes告诉我在应用程序的事件循环中花了多少时间。

我想知道这会如何受到冬眠的影响。是否报告了冬眠时间?或者也许是系统时间?所有版本的Windows上的行为是否相同?

注意我为Posix here提出了同样的问题。

1 个答案:

答案 0 :(得分:0)

否,未报告休眠时间

怎么可能?

当休眠时,计算机实际上关闭,没有计时器正在滴答作响且没有计数。
使用GetThreadTimes看到的时序是在系统计时器 1 的每个滴答(即中断)时计算的。

我做了一个小C程序来测试它。
它记录每1000毫秒的时间,我运行它并休眠我的笔记本电脑(大约第二个9)  计数中没有显示间隙,正如预期的那样,每行约为1000毫秒。

No gaps in counting

因此,休眠时间不会计入系统时间或用户时间。

我不知道这与所有旧版本的Windows一致,特别是那些具有不同休眠意义的版本,但您可以期望在所有重要版本中保持一致。

1 HPET,LAPIC计时器或旧的PIT,无论可用的是什么

相关问题