C++ 将timeval格式设置为";“最佳单位”;

C++ 将timeval格式设置为";“最佳单位”;,c++,benchmarking,C++,Benchmarking,我正在尝试编写一个基准测试程序,它需要大约20分钟才能完成,因为实际函数至少需要调用50次 我使用了以下代码: struct timeval start, end; long mtime, seconds, useconds; gettimeofday(&start, NULL); usleep(2000); gettimeofday(&end,NULL); seconds =end.tv_sec - start.tv_sec; useconds=end.tv_usec - st

我正在尝试编写一个基准测试程序,它需要大约20分钟才能完成,因为实际函数至少需要调用50次

我使用了以下代码:

struct timeval start, end;
long mtime, seconds, useconds;
gettimeofday(&start, NULL);
usleep(2000);
gettimeofday(&end,NULL);
seconds =end.tv_sec - start.tv_sec;
useconds=end.tv_usec - start.tv_usec; 
(mtime>1000)?cout<<"elapsed time in seconds:"<<setprecision(8)<<mtime/1000<<"seconds\n":cout<<"elapsed time in milliseconds: "<<setprecision(3)<<mtime<<" milliseconds\n"; 
struct timeval开始、结束;
长时间,秒,秒;
gettimeofday(&start,NULL);
usleep(2000年);
gettimeofday(&end,NULL);
秒=end.tv_秒-start.tv_秒;
useconds=end.tv\u usec-start.tv\u usec;
(mtime>1000)?cout我猜您的“最佳单位”需求基本上是“人类可用单位”。如果是这样,请花点时间和精力

  • 毫秒mod1000给出毫秒数
  • 毫秒div1000表示秒(其中div为整数除法)
  • mod60给出秒数
  • div60分钟

等等。

你能更具体地说一下“最佳单位”吗?男孩,这听起来像是家庭作业。这与“基准代码”无关,你只是想“将时间格式化为适当的单位”。也许您可以调整您的问题标题?
std::string humanreadable\u time(long t)
?thx Charlie,不幸的是,这不是家庭作业-(…听起来我的思路是正确的,只需要将这些转换为人类可用/可读的单元…@Oli,我不知道在哪里更改问题标题…。我会尝试解决它…是的,你必须自己做。将它放在函数中,并始终随身携带。我向你保证,你会再次使用它。