我需要计算我的功能经过的时间。现在我正在使用 std::clock 并且据我了解这是测量 CPU 时间,这可能与实时不同。
std::clock_t start;
double duration;
start = std::clock();
someFunctionToMeasure();
duration = (std::clock() - start) / (double)CLOCKS_PER_SEC;
所以有两件事我想知道
std::clock 究竟是如何工作的?它只是在计算该功能时测量CPU吗?
有没有更好的方法来测量计算我的函数所用的时间?
原文由 mereth 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用
<chrono>
,您需要的代码可能如下所示:注意:感谢霍华德对上述内容的有益评论。
如果您多次需要此代码段并且开始/结束大约是您调用
someFunctionToMeasure()
的范围的入口和出口点,则将其包装到一个实用程序类中可能是有意义的,该类可以进行两次调用now()
在构造函数和析构函数中。