计算delta不正确

calculating delta incorrectly

本文关键字:不正确 delta 计算      更新时间:2023-10-16

我正试图用这样的东西来计算以毫秒为单位的增量:

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

然而,这并不起作用,因为德尔塔绝对没有超过4000,而且似乎越来越高。我做错了什么?

由于使用的是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;
}