n900 - maemo - 计时

发布于 2024-10-13 06:02:43 字数 229 浏览 2 评论 0原文

我试图在 +- 100 毫秒内每秒保存一个文件(10% 错误)。我遇到的问题是,我的计时测量表明执行花费了 1150 毫秒,但实际上它似乎是 3 或 4 秒。

这是怎么回事?

如果我发出命令 sleep(1),它看起来非常准确。然而,当我测量某件事需要多长时间时,它肯定会偏离相当多。

我正在使用 Clock() 来测量程序执行情况。所有这些东西都在 while 循环内。

瓦尔特

I am attempting to save a file every second within +- 100ms (10% error). The problem I am having is that my timing measurement is saying that execution took 1150 ms, but in reality it appears to be 3 or 4 seconds.

What's going on?

If I issue the command, sleep(1), it appears to be very accurate. However, when I measure how long something took, it must be off by quite a bit.

I am using clock() to measure program execution. All of this stuff is within a while loop.

Walter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蝶舞 2024-10-20 06:02:43

您的问题是 clock() 报告您的进程使用的 CPU 时间,它通常与使用的“真实”时间不同。

例如下面的代码:

#include <time.h>
#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
        clock_t scl = clock();
        sleep(1);
        cout << "CPU clock time " << clock()-scl << endl;
}

给出

time ./a.out 
CPU clock time 0

real    0m1.005s
user    0m0.000s
sys 0m0.004s

Your problem is that clock() reports you CPU time used by your process and it is usually different from the "real" time used.

For example following code:

#include <time.h>
#include <iostream>
#include <unistd.h>

using namespace std;

int main()
{
        clock_t scl = clock();
        sleep(1);
        cout << "CPU clock time " << clock()-scl << endl;
}

gives

time ./a.out 
CPU clock time 0

real    0m1.005s
user    0m0.000s
sys 0m0.004s
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文