Я ищу эквивалент GetTickCount()
на Linux.
В настоящее время я использую Python time.time()
который, по-видимому, звонит до gettimeofday()
. Мое беспокойство - то, что возвращенное время (эпоха Unix), может измениться беспорядочно, если часы смешаны с, такой как NTP. Простой процесс или системное стенное время, это только увеличивается положительно на постоянном уровне, был бы достаточен.
Какое-либо такое время функционирует в C, или Python существуют?
Вы можете использовать CLOCK_MONOTONIC, например, в C:
struct timespec ts;
if(clock_gettime(CLOCK_MONOTONIC,&ts) != 0) {
//error
}
Смотрите этот вопрос для способа на Python - Как получить монотонную длительность времени в python?
Да, в ядре есть таймеры с высоким разрешением, но все по-другому. Я бы порекомендовал вам взглянуть на исходники любого странного проекта, который переносит это в переносимую форму.
Из C / C ++ я обычно использую #ifdef
this и использую gettimeofday ()
в Linux, что дает мне разрешение в микросекундах. Я часто добавляю это как дробь к секундам, так как эпоха, которую я получаю, дает мне удвоение.
Вы должны использовать: clock_gettime (CLOCK_MONOTONIC, & tp);
. На этот вызов не влияет настройка системного времени, как и на GetTickCount () в Windows.