Формат timeval в "лучшие единицы" - PullRequest
0 голосов
/ 16 августа 2011

Я пытаюсь написать тестовую программу, выполнение которой занимает около 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"; 

но я должен написать это так, чтобы вывод выводил лучшие единицы измерения для использованного времени и отображал результаты в этих единицах.какие-либо предложения, как я могу пересмотреть вышеупомянутый код для требования?ТНХ!

1 Ответ

0 голосов
/ 16 августа 2011

Я предполагаю, что ваше требование "лучшая единица" - это "юниты, пригодные для использования человеком".Если это так, возьмите время и

  • миллисекунды мод 1000 дает число миллисекунд
  • миллисекунд деление 1000 дает секунды (где div - целочисленное деление)
  • секунд мод 60 дает количество секунд
  • секунд div 60 дает минут

и т. Д.

...