测量经过时间C ++的不同值

时间:2014-09-27 16:09:36

标签: c++

我有一个简单的代码,我使用clock()和其他建议的方法来测量程序的运行时间。问题是当我运行次数时,我得到了不同的值。 有没有办法超过程序的实际执行时间?

提前致谢

1 个答案:

答案 0 :(得分:0)

doint的一种方式是使用#include <ctime>

clock_t t = clock();       //  take a start time 
// ... do something 
clock_t dt = clock() - t;  // take elapsed time 
cout << (((double)dt) / CLOCKS_PER_SEC) * 1000);  // duration in MILLIseconds.  

另一种方法使用#include <chrono>的{​​{3}}:

  chrono::high_resolution_clock::time_point t = chrono::high_resolution_clock::now();
  //... do something
  chrono::high_resolution_clock::time_point t2 = chrono::high_resolution_clock::now();
  cout << chrono::duration_cast<chrono::duration<double>>(t2 - t).count();
  // or if you prefer duration_cast<milliseconds>(t2 - t).count();

无论如何,你发现很小的变化是正常的。第一个原因是你的PC上的其他运行程序。第二个原因是时钟精度(例如窗口上着名的15毫秒)。