Russian Qt Forum

Программирование => С/C++ => Тема начата: Admin от Март 22, 2005, 16:17



Название: Чем помжно заменить GetTickCount();
Отправлено: Admin от Март 22, 2005, 16:17
Пишу класс измеряющий время работы куска кода,

под виндой время можно получить GetTickCount();

а как под linux?


Название: Чем помжно заменить GetTickCount();
Отправлено: ANM от Апрель 26, 2005, 12:09
Используй gettimeofday()
Пример:
Код:
unsigned GetMicroseconds()
{
struct timeval tv;
::gettimeofday( &tv, 0 );
typedef unsigned long long TimeValue;
TimeValue cur = TimeValue(tv.tv_sec) * TimeValue(1000000) + TimeValue(tv.tv_usec);
return unsigned(cur);
}

Есть одна неприятность - если в системе перевести время, текущее значение в gettimeofday тоже изменится.
Теоретически лучше всего подходит функция clock_gettime c идентификатором CLOCK_MONOTONIC. Но ее почему то убрали из glibc  :x