O intervalo de tempo mais curto que pode medir é 1 jiffy, que é o inverso da frequência especificada nas opções de compilação do kernel (CONFIG_HZ).
Estou apenas imaginando quais são os limites de time
. Eu tenho um programa que sempre leva exatamente 20 ms, então eu suponho que isso é o menor que pode medir, mas eu quero ver se há algum tipo de documentação disso.
Concordo com a resposta de Ignacio, mas acho que falta um ponto crítico. Embora um momento seja, teoricamente, a menor unidade que pode ser medida, algumas vezes curtos períodos de tempo são imprecisos porque o hardware subjacente não mede as mudanças no tempo com rapidez. Na minha experiência, qualquer coisa com menos de um milissegundo não pode ser comparada com precisão a outra coisa (embora esse número possa ser tão alto quanto 5 ou 10 milissegundos). Se você está tentando comparar uma operação ou programa específico, considere que ele seja executado muitas centenas ou milhares de vezes e, em seguida, divida o tempo total pelo número de iterações para encontrar um valor mais preciso.
Tente isto:
gcc -o timetest -x c - <<< "int main() {}"; time ./timetest
No meu sistema (antigo e lento), execuções subseqüentes de:
time ./timetest
termine em apenas:
real 0m0.005s
user 0m0.004s
sys 0m0.000s