我有一个简单的代码,我使用clock()和其他建议的方法来测量程序的运行时间。问题是当我运行次数时,我得到了不同的值。 有没有办法超过程序的实际执行时间?
提前致谢
答案 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毫秒)。