我的目标是看到过了多长时间运行来计算我的线程的性能,但我得到了一些问题:计算时间
我的代码如下:
的#include
thread() {
struct timeval start, finish;
gettimeofday(&start, NULL);
-- code --
gettimeofday(&start, NULL);
double dif = ((end.tv_sec - start.tv_sec) + (end.tv_usec - start.tv_usec)*0.000001);
printf("%f", dif);
}
我希望我的代码以秒和毫秒的格式打印,例如:3.252或类似的东西,但我得到的东西是:0.1615680.161717。
有谁知道如何将此格式转换为标准的x.xxxx秒版本?
我高度怀疑这不是完整的源代码。你的意思是使用'&start'两次?你是否想要从格式字符串中省略'\ n'? – Nemo
由于没有'\ n',我认为在输出中有两个连接了'0.161568'' 0.161717'的值。 – nnn
而不是gettimeofday,看看[C++ 11的'chrono'库](http://en.cppreference.com/w/cpp/chrono)。特别是,[high_resolution_clock'](http://en.cppreference.com/w/cpp/chrono/high_resolution_clock) – user4581301