Назовите это в узком цикле, отметьте разницу между текущим значением и предыдущим, когда оно изменяется. Примерно так:
#include <stdio.h>
#include <sys/time.h>
int main()
{
struct timeval timevals[2];
int cur = 0;
while (1) {
gettimeofday(&timevals[cur], NULL);
int diff = timevals[cur].tv_usec - timevals[!cur].tv_usec;
if (diff)
printf("%d\n", diff);
cur = !cur;
}
}
В моей системе степень детализации составляет около 2 мксек (около 50/50 одна или две микросекунды с выбросами в сотни или тысячи, которые, вероятно, связаны с переключением задач).