我尝试用C ++测量代码的执行情况。 但那不是很准确。 这是我的代码:
std::clock_t start2;
start2 = std::clock();
myFunction();
printf("time of execution: %d ms\r\n",std::clock()-start2);
但是不够准确 执行时间低于10毫秒,但结果是10毫秒或0毫秒,这是不稳定的。
所以我在寻找更准确的解决方案。 有什么建议吗?
答案 0 :(得分:6)
您可以使用标准std::chrono::high_resolution_clock
标头中的<chrono>
:它应该代表实现可用的最准确时钟。
示例:强>
#include <iostream>
#include <chrono>
int main()
{
typedef std::chrono::high_resolution_clock Clock;
auto t1 = Clock::now();
MyFunction();
auto t2 = Clock::now();
std::cout <<std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count() << '\n';
}
备注:强>
boost::chrono
是一个非常好(非常接近)的选择。