2010-06-13 2 views
2

Мне нужна функция или способ получить эпоху UNIX за считанные секунды, как и я могу на PHP с использованием функции времени.C++: Как я могу получить время unix?

Я не могу найти какой-либо метод, кроме time() в ctime, который, как представляется, выводит только отформатированную дату или функцию clock(), которая имеет секунды, но, кажется, всегда кратно 1 миллиону, ничего с разрешающая способность.

Я хочу измерить время выполнения в программе, я просто хотел рассчитать разницу между началом и концом; как это сделал бы программист на C++?

EDIT: time() и difftime позволяют разрешать только секунды, а не мс или что-то еще.

+1

Вы хотите что-то лучшее, чем вторая точность, но измеряемое за считанные секунды? –

ответ

2

Если вы хотите получить профиль, я бы рекомендовал использовать getrusage. Это позволит вам отслеживать время процессора вместо часов настенных часов:

struct rusage ru; 
getrusage(RUSAGE_SELF, &ru); 

ru.ru_utime.tv_sec; // seconds of user CPU time 
ru.ru_utime.tv_usec; // microseconds of user CPU time 
ru.ru_stime.tv_sec; // seconds of system CPU time 
ru.ru_stime.tv_usec; // microseconds of system CPU time 
Смежные вопросы