Мне просто интересно, каковы ограничения по time
. У меня есть программа, которая всегда занимает ровно 20 мс, поэтому я предполагаю, что это самое низкое значение, которое она может измерить, но я хочу посмотреть, есть ли какая-то документация об этом.
3 ответа
Самый короткий интервал времени, который он может измерить, составляет 1 мгновение, которое является обратной величиной частоты, указанной в опциях сборки для ядра (CONFIG_HZ).
Я согласен с ответом Игнасио, однако считаю, что он упускает критическую точку. Хотя jiffy теоретически является наименьшей единицей измерения, которую он может измерить, иногда очень короткие промежутки времени являются неточными, поскольку базовое оборудование не измеряет изменения во времени так быстро. По моему опыту, ничто менее одной миллисекунды не может быть точно сопоставлено с чем-то другим (хотя эта цифра может достигать 5 или 10 миллисекунд). Если вы пытаетесь сравнить конкретную операцию или программу, рассмотрите возможность ее выполнения много сотен или тысяч раз, а затем разделите это общее время на количество итераций, чтобы найти более точное значение.
Попробуй это:
gcc -o timetest -x c - <<< "int main() {}"; time ./timetest
На моей (старой и медленной) системе последующие запуски:
time ./timetest
закончить всего за:
real 0m0.005s
user 0m0.004s
sys 0m0.000s