【问题标题】:Is there a way to measure time to microseconds precision on Windows? [duplicate]有没有办法在 Windows 上测量时间到微秒精度? [复制]
【发布时间】:2014-01-10 06:46:02
【问题描述】:

我的问题:

  1. 从服务器接收广播。

  2. 从我的中间层接收广播。

在这里,我在同一毫秒内接收到服务器UDP 应用程序中的两个广播。如何找到它们之间的差异到微秒精度?

如何以微秒级精度测量时间?

【问题讨论】:

    标签: c++ c++11


    【解决方案1】:

    使用QueryPerformanceCounter。这取决于机器,但如今大多数处理器的运行速度都非常快,而且精度会超过微秒。

    【讨论】:

    • C++11 包装器是std::chrono::high_resolution_clock。它的分辨率通常为 100 纳秒。
    【解决方案2】:

    在 1990 年代,我编写了在 MS-DOS 上运行的程序,该程序使用了位于密歇根州 Mt. Pleasant 的一家名为 Ryle Design 的公司名为个人计算机高分辨率定时 (PCHRT) 的产品。

    他们的产品提供了一个提供微秒级分辨率的例程库。通过直接与当时 PC 中的 8253 或 8254 计时芯片连接,它运行良好。

    如果你能找到 Ryle Design,他们可能已经找到了在 Microsoft Windows 下提供高分辨率时序的方法。

    当 Windows 取代 MS-DOS 时,我不得不放弃该产品并使用 microcontroller 将我的产品转移到自定义硬件中以实现高分辨率计时。我找不到在 Microsoft Windows 下获得高分辨率计时的方法。

    这篇文章虽然已有多年历史,但可能会有所帮助:

    http://msdn.microsoft.com/en-us/magazine/cc163996.aspx

    【讨论】:

    • MSDN 链接(实际上)已损坏。它重定向到一个通用的 MSDN 页面。
    • 你在开玩笑吗?你建议直接与硬件接口?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 2015-02-27
    • 1970-01-01
    相关资源
    最近更新 更多