在 posix 上,可以使用 timespec 来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用 Visual Studio 编译器迁移到 Windows。VS time.h 库没有声明 timespec,所以我正在寻找其他选项。尽可能搜索是否可以使用时钟和 time_t,尽管我无法检查用时钟计数计算毫秒的精确度。
您如何/使用什么来计算操作中的时间流逝(如果可能,使用标准 c++ 库)?
在 posix 上,可以使用 timespec 来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用 Visual Studio 编译器迁移到 Windows。VS time.h 库没有声明 timespec,所以我正在寻找其他选项。尽可能搜索是否可以使用时钟和 time_t,尽管我无法检查用时钟计数计算毫秒的精确度。
您如何/使用什么来计算操作中的时间流逝(如果可能,使用标准 c++ 库)?
GetTickCount函数通常用于此目的。
也是一个类似的线程:C++ 计时,自上一整秒以来的毫秒数
取决于你想要什么样的精度,我的理解是clock和time_t不能精确到毫秒级。类似地,GetTickCount() 是常用的(MS 文档说精确到 10-15 毫秒),但对于许多用途来说不够准确。
我使用QueryPerformanceFrequency和QueryPerformanceCounter进行准确的时间测量以提高性能。