【问题标题】:timespec on windows compilerswindows编译器上的timespec
【发布时间】:2011-09-05 13:03:54
【问题描述】:

在 posix 上,可以使用 timespec 来计算准确的时间长度(如秒和毫秒)。不幸的是,我需要使用 Visual Studio 编译器迁移到 Windows。 VS time.h 库没有声明 timespec,所以我正在寻找其他选项。尽可能搜索是否可以使用 clock 和 time_t 虽然我无法检查使用时钟计数来计算毫秒的精确度。

你用什么来计算操作中的时间流逝(如果可能的话,使用标准 c++ 库)?

【问题讨论】:

    标签: c++ visual-studio elapsedtime timespec


    【解决方案1】:

    函数GetTickCount通常用于此。

    还有一个类似的线程:C++ timing, milliseconds since last whole second

    【讨论】:

    • 有没有办法使用标准c++库。这将是一个奖金。我也忘了提这个
    • 检查这个线程,它包含一个答案:stackoverflow.com/questions/117346/…
    • 谢谢@Grim。它看到这不是便携式的
    • 引用线程上的 boost 解决方案可能是您最便携的解决方案。
    【解决方案2】:

    取决于你想要什么样的精度,我的理解是clock和time_t不能精确到毫秒级别。类似地,GetTickCount() 是常用的(MS 文档说精确到 10-15 毫秒),但对于许多用途来说不够准确。

    我使用QueryPerformanceFrequencyQueryPerformanceCounter 进行准确的时间测量以提高性能。

    【讨论】:

    • time_t 精确到一秒,因为它是表示秒的整数类型;亚秒级精度在数学上是不可能的。
    • 所以我会一直坚持编译器
    • 实际上你会被 Windows API 卡住而不是编译器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多