Questão Quão curto tempo o tempo (o programa Linux) pode medir?


Eu só estou querendo saber quais são os limites para time estamos. 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.


2


origem




Respostas:


O intervalo de tempo mais curto que ele pode medir é 1 jiffy, que é o inverso da frequência especificada nas opções de construção do kernel (CONFIG_HZ).


3



Existe um site que menciona isso em algum lugar? - Brendan Long
time(1) leva a times(2) que diz "Todos os tempos relatados estão em pulsos de clock". no DESCRIÇÃO seção. De lá, isso leva a páginas que falam sobre HZ, mas essa configuração de configuração é feita obsoleta por CONFIG_NO_HZ. Então ... não sei onde de lá. - Ignacio Vazquez-Abrams


Concordo com a resposta de Ignacio, no entanto, acredito 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ê estiver tentando comparar uma operação ou programa específico, considere que ela seja executada 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.


3



Na verdade, embora o momento seja o software, o hardware subjacente é muito melhor. resolução grep / proc / timer_list - oylenshpeegul


Tente isto:

gcc -o timetest -x c - <<< "int main() {}"; time ./timetest

No meu sistema (antigo e lento), execuções subseqüentes de:

time ./timetest

terminar em tão pouco quanto:

real    0m0.005s
user    0m0.004s
sys     0m0.000s

1



Nota: Isto é como relatado por Bash time. Usando /usr/bin/time reporta apenas para centésimos de segundo e diz "0.00". Os resultados do zsh builtin são semelhantes. o ksh builtin mostra o menor tempo (0,000 ou 0,001 real). - Dennis Williamson