1

我正在尝试以毫秒为单位计算增量,如下所示:

int olddelta = 0;
    int delta = 0;
    const clock_t begin_time = clock();
    while (true) {
        olddelta=delta;
        delta=clock()-olddelta;
        cout<<delta<<endl;
}

但是这不起作用,因为 delta 绝对不会超过 4000,而且它似乎越来越高。我做错了什么?

4

1 回答 1

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;
}
于 2013-08-31T00:34:27.433 回答