您如何在 Windows C++ 中以毫秒或微秒为单位测量执行时间?
我发现许多方法一调用时间(NULL),但它仅以秒为单位测量时间,而秒时钟()(clock_t)测量CPU时间,而不是实际时间。
我找到了本文提到的函数gettimeofday(日历时间):dropbox.com/s/k0zv8pck7ydbakz/1_7-PDF_thesis_2.pdf
此函数适用于 Linux(计算时间以毫秒和微秒为单位),不适用于 Windows。
我为 Windows 找到了一个替代方案:dropbox.com/s/ofo99b166l7e2gf/gettimeofday.txt
这可能是相关的:stackoverflow.com/questions/1861294/how-to-calculate-execution-time-of-a-code-snippet-in-c
原文由 user3617694 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用标准 C++
<chrono>
库:要记住的一件事是,使用
<chrono>
启用类型安全的通用时序代码,但要获得该好处,您使用它的方式与使用存储持续时间和像int
这样的类型的时间点。这是一个答案,解释了一些特定的使用场景以及使用无类型库和使用 chrono 的最佳实践之间的区别: https ://stackoverflow.com/a/15839862/365496Visual Studio 标准库实现的维护者 表示
high_resolution_clock
的低分辨率已在 VS2015 中通过使用QueryPerformanceCounter()
得到修复。