********************** Оригинальное название **********************
Я использую разные типы часов, чтобы получить время в системах LINUX:
rdtsc, gettimeofday, clock_gettime
и уже прочитали различные потоки, подобные этим:
Какое лучшее временное разрешение я могу получить в Linux
Как достигается микросекундное время получения linux gettimeofday() и какова его точность?
Как измерить временной интервал в C?
более быстрый эквивалент gettimeofday
Почему clock_gettime настолько неустойчив?
Но я немного смущен:
В чем разница между детализацией, разрешением, точностью, точностью?
Гранулярность (или разрешение или точность) и точность - это не то же самое (если я прав...)
Например, при использовании "clock_gettime" точность составляет 10 мс, когда я получаю:
struct timespec res;
clock_getres( CLOCK_REALTIME, &res):
и гранулярность (которая определяется как тики в секунду) составляет 100 Гц (или 10 мс), как я получаю при выполнении:
long ticks_per_sec = sysconf(_SC_CLK_TCK);
Точность находится в наносекундах, как указано выше:
struct timespec gettime_now;
clock_gettime (CLOCK_REALTIME, & gettime_now); time_difference = gettime_now.tv_nsec - start_time;
В приведенной ниже ссылке я увидел, что это глобальное определение детализации Linux и лучше не изменять его:
http://wwwagss.informatik.uni-kl.de/Projekte/Squirrel/da/node5.html#fig:clock:hw
Итак, мой вопрос: если это замечание выше было правильным, а также:
a) Можем ли мы увидеть, что такое гранулярность rdtsc и gettimeofday (с помощью команды)?
b) Можем ли мы изменить их (каким-либо образом)?
Заранее спасибо
********************** Изменить no2 **********************
Привет всем, я проверил несколько новых часов, и мне понравится поделиться информацией:
a) На приведенной ниже странице David Terei появилась прекрасная программа, которая сравнивает различные часы и их характеристики:
https://github.com/dterei/Scraps/tree/master/c/time
b) Я также тестировал omp_get_wtime как Raxman, предложенный мной, и я нашел точность в nsec, но не очень лучше, чем "clock_gettime" (как это было на этом сайте ):
http://msdn.microsoft.com/en-us/library/t3282fe5.aspx
Я думаю, что это функция времени, ориентированная на окно
Лучшие результаты даются с clock_gettime с помощью CLOCK_MONOTONIC, чем при использовании CLOCK_REALTIME. Это нормально, потому что первый вычисляет время ОБРАБОТКА, а другое РЕАЛЬНОЕ ВРЕМЯ соответственно
c) Я нашел также функцию Intel ippGetCpuClocks, но я не тестировал ее, потому что она обязательна для регистрации первой:
http://software.intel.com/en-us/articles/ipp-downloads-registration-and-licensing/
... или вы можете использовать пробную версию
Спасибо всем за ваши ответы!!!