我正在尝试计算我的代码中函数的执行次数(这需要一个多小时),并且我正在使用 clock(),但我遇到了一些错误,因为计算的时间是负数。我这样做:
long double time;
clock_t start, t_end;
t_start = clock();
algorithm->execute();
t_end = clock();
time = ((long double) t_end - t_start) / CLOCKS_PER_SEC;
cout << time << endl;
我做错了什么吗?
最佳答案
CLOCKS_PER_SEC 是 1000000 并且 clock() 返回一个带符号的 32 位值,因此将在大约 36 分钟后变为负值并在大约 72 分钟后换行。
参见 http://www.guyrutenberg.com/2007/09/22/profiling-code-using-clock_gettime有关如何衡量长执行时间的详细信息。
关于C++计算执行时间错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3077198/