我有兴趣使用 ctime 在不同点显示 C 程序的执行时间。我已经尝试过类似的东西,但它一定不对......
int main() {
time_t tm1, tm2;
tm1 = time(NULL);
sleep(2);
tm2 = ctime(tm1);
printf("%d\n", tm2-tm1);
return 0;
}
您有什么建议或适当的例子吗?提前致谢
ctime()返回传递给它的时间的字符串表示形式。
如果您想要一个简单的经过时间,只需:
time_t t1, t2;
t1 = time(0);
sleep(2);
t2 = time(0);
printf("Elapsed: %d\n", t2 - t1);
见man ctime和man 2 time。
您可以使用该time函数获取当前时间,并使用该difftime函数计算两次之间的差异(以秒为单位)(省略错误处理):
time_t t0, t1;
t0 = time(NULL);
foo();
t1 = time(NULL);
printf("foo() took %f seconds.\n", difftime(t1, t0));
但是,time_t用于测量日历时间。该time函数通常具有一秒的间隔。如果这太粗略,您可以尝试使用clock_t和clock函数(再次省略错误处理):
clock_t t0, t1;
t0 = clock();
foo();
t1 = clock();
printf("foo() took %f seconds.\n", (double)((t1 - t0) / CLOCKS_PER_SEC));