我需要计算我的函数所花费的时间。现在我正在使用 std::clock ,据我了解,这是测量 CPU 时间,这可能与实时不同。
std::clock_t start;
double duration;
start = std::clock();
someFunctionToMeasure();
duration = (std::clock() - start) / (double)CLOCKS_PER_SEC;
所以有两件事我想知道
std::clock 到底如何工作?它只是在计算该功能时测量CPU吗?
有没有更好的方法来测量计算我的函数所花费的时间?
Using <chrono>
,您需要的代码可能如下所示:
using clock = std::chrono::system_clock;
using sec = std::chrono::duration<double>;
// for milliseconds, use using ms = std::chrono::duration<double, std::milli>;
const auto before = clock::now();
someFunctionToMeasure();
const sec duration = clock::now() - before;
std::cout << "It took " << duration.count() << "s" << std::endl;
NB: Thanks to Howard for his helpful comments for the above.
如果您多次需要此代码段,并且开始/结束大约是您调用范围的入口点和出口点someFunctionToMeasure()
,将其包装到一个实用程序类中可能是有意义的,该实用程序类进行两次调用now()
在构造函数和析构函数中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)