Измерить время в Linux - время против часов против getrusage против clock_gettime против gettimeofday против timespec_get?

Среди функций синхронизации,timeclock ,,getrusageclock_gettimegettimeofday а такжеtimespec_getЯ хочу четко понять, как они реализованы и каковы их возвращаемые значения, чтобы знать, в какой ситуации я должен их использовать.

Сначала нам нужно классифицировать функции, возвращающиенастенные часы сравнить с функциями, возвращающимизначения процесса или потоков.gettimeofday возвращает значение настенных часов,clock_gettime возвращает значение настенных часовили же значения процесса или потоков в зависимости отClock параметр передан ему.getrusage а такжеclock вернуть значения процесса.

Тогда второй вопрос касается реализации этих функций и, как следствие, их точности. Какой аппаратный или программный механизм использует эти функции.

Кажется, чтоgetrusage использует только тик ядра (обычно длиной 1 мс) и, как следствие, может 'Точнее, чем мс. Это правильно? Тогдаgetimeofday Похоже, что функция использует самое точное из доступных аппаратных средств. Как следствие, его точность обычно составляет микросекунду (можетбыть больше из-за API) на новейшем оборудовании. Как насчетclockСтраница справочника "приближение», что это значит? Как насчетclock_gettime, API в наносекунду, значит ли это, чтоможет быть настолько точным, если базовое оборудование позволяет это? Как насчет монотонности?

Есть ли другие функции?

Ответы на вопрос(2)

Ваш ответ на вопрос