Как отследить общее время программы?

Обычно в IDE, когда вы запускаете программу, IDE сообщит вам общее количество времени, которое потребовалось для запуска программы. Есть ли способ получить общее количество времени, которое требуется для запуска программы при использовании терминала в Unix/Linux для компиляции и запуска?

Мне известно о ctime, которое позволяет получить общее время с 1970 года, однако я хочу получить только время, необходимое для запуска программы.

3 ответа

Решение

Вы можете запускать программы со временем:

[:~/tmp] $ time sleep 1

real    0m1.007s
user    0m0.001s
sys     0m0.003s

Ты на правильном пути! Вы можете получить текущее время и вычесть его из времени окончания вашей программы. Код ниже проиллюстрирован:

time_t begin = time(0);   // get current time

// Do Stuff //

time_t end = time(0);   // get current time

// Show number of seconds that have passed since program began //
std::cout << end - begin << std::endl;

ПРИМЕЧАНИЕ. Время детализации составляет всего одну секунду. Если вам нужна более высокая степень детализации, я предлагаю рассмотреть точные таймеры, такие как QueryPerformanceCounter() в windows или clock_gettime() в linux. В обоих случаях код, скорее всего, будет работать очень похоже.

В качестве дополнения к ответу mdsl, если вы хотите получить что-то близкое к этому измерению в самой программе, вы можете получить время в начале программы и получить время в конце программы (как вы сказали, во времени). с 1970 года) - затем вычтите время начала из времени окончания.

Другие вопросы по тегам