2

Мне просто интересно, каковы ограничения по time . У меня есть программа, которая всегда занимает ровно 20 мс, поэтому я предполагаю, что это самое низкое значение, которое она может измерить, но я хочу посмотреть, есть ли какая-то документация об этом.

3 ответа3

3

Самый короткий интервал времени, который он может измерить, составляет 1 мгновение, которое является обратной величиной частоты, указанной в опциях сборки для ядра (CONFIG_HZ).

3

Я согласен с ответом Игнасио, однако считаю, что он упускает критическую точку. Хотя jiffy теоретически является наименьшей единицей измерения, которую он может измерить, иногда очень короткие промежутки времени являются неточными, поскольку базовое оборудование не измеряет изменения во времени так быстро. По моему опыту, ничто менее одной миллисекунды не может быть точно сопоставлено с чем-то другим (хотя эта цифра может достигать 5 или 10 миллисекунд). Если вы пытаетесь сравнить конкретную операцию или программу, рассмотрите возможность ее выполнения много сотен или тысяч раз, а затем разделите это общее время на количество итераций, чтобы найти более точное значение.

1

Попробуй это:

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

На моей (старой и медленной) системе последующие запуски:

time ./timetest

закончить всего за:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .