【发布时间】:2016-10-15 05:54:00
【问题描述】:
可能是一个愚蠢的问题。我注意到在 Linux 机器上以 C 运行一个简单的 Hello World 程序时执行时间有所不同(虽然它不是特定于语言的)。
程序:
#include<stdio.h>
#include<time.h>
int main()
{
clock_t begin, end;
double time_spent;
begin = clock();
printf("%s", "Hello World\n");
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("%f\n", time_spent);
return 0;
}
o/p:
$ ./hello
Hello World
0.000061
$ ./hello
Hello World
0.000057
$ ./hello
Hello World
0.000099
这是在平均负载为 0.4 且可用内存充足的四核机器上测试的。虽然差异很小,但背后的原因是什么?
【问题讨论】:
-
程序的运行时间太短,因此偏差主要是由于“舍入”错误。
-
旁白:您可能应该将
"\n%s"更改为"%s\n",因为您的消息可能在end = clock();之前没有输出
标签: c linux time operating-system