我试图以毫秒为单位计算delta:
int olddelta = 0;
int delta = 0;
const clock_t begin_time = clock();
while (true) {
olddelta=delta;
delta=clock()-olddelta;
cout<<delta<<endl;
}
然而,这并不起作用,因为delta肯定不会超过4000,而且它似乎逐渐变高。我做错了什么?
答案 0 :(得分:3)
由于您使用clock()
,因此需要将其除以CLOCKS_PER_SEC
以获得以秒为单位表示的结果。要获得分数,请在分割前将clock()
投射到double
:
double olddelta = 0;
double delta = 0;
const double begin_time = clock();
while (true) {
olddelta = delta;
delta=clock()-olddelta;
cout << (delta/CLOCKS_PER_SEC) << endl;
}
如果要测量单次迭代的时间,请按如下所示更改循环:
double olddelta = 0;
double delta = 0;
const double begin_time = clock();
while (true) {
double now = clock();
delta = now - begin_time;
cout << (delta/CLOCKS_PER_SEC) << endl;
begin_time = now;
}