gpt4 book ai didi

c++ - 为什么在 Windows 上没有微秒分辨率的 boost::date_time?

转载 作者:可可西里 更新时间:2023-11-01 14:43:52 27 4
gpt4 key购买 nike

Win32 系统上 boost::date_time::microsec_clock() 是使用 ftime 实现的,它只提供毫秒分辨率:Link to doc

Stackoverflow 上有一些问题/答案说明了这一点并链接了文档,但没有解释为什么会这样:

似乎有一些方法可以在 Windows 上实现微秒分辨率:

我感兴趣的是为什么 Boost 以这种方式实现它,而反过来可能有更合适的解决方案?

最佳答案

QueryPerformanceCounter 无法帮助您解决这个问题。它给你一个时间戳,但因为你不知道计数器何时开始,所以没有可靠的方法来计算它的绝对时间点。 boost::date_time 就是这样一个(用户可以理解的)时间点。另一个不同之处在于,像 QueryPerformanceCounter 这样的计数器为您提供了一个稳定增加的计时器,而系统时间可能会受到用户的影响,因此可能会跳跃。所以这两件事是针对不同的用例的。一个用于表示实时,另一个用于在软件中获取精确计时和基准测试。

GetSystemTimePreciseAsFileTime 似乎符合高分辨率绝对时间的要求。我猜它没有被使用,因为它需要 Windows8。

关于c++ - 为什么在 Windows 上没有微秒分辨率的 boost::date_time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23446577/

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