Intereting Posts
sed: проблема при замене строки с помощью шаблона fstrim "операция сброса не поддерживается" с ext4 на LVM Недостаточно памяти при использовании sed с многострочными выражениями на гигантском файле Установка постоянной переменной среды в выпуске CentOS 7 Как монтировать раздел? Обновление archlinux chroot pacman не удается Синтаксис подстановки процесса. Прямая / правая скобка против заднего / левого кронштейна с sed, как я могу заменить слово в соответствующей строке? Установка переменных в / etc / environment, не имеющих влияния, но установка их в командной строке Замораживание при запуске с ошибкой "fb: переход на radeondrmfb из EFI VGA" Инструмент для сравнения файлов на одном диске с информацией о реестре на другом? Linux Noob: apt-get не устанавливает пакет, но нет ошибки? Интеграция основного ключа Pass / Firefox? Apache не работает на Debian 8 Как запустить и остановить службу прослушивателя вместе с пользовательской службой

linux-патчи, связанные с точностью измерения времени?

Существует ли набор исправлений для ядра linux, которые учитывают точность (процесса обработки, а не пользователя)?

Я слышал о RTLinux, но мне действительно не нужны фактические ограничения на планирование в реальном времени, мне просто нужно, чтобы измерения времени были точными. Если переключатель процесса проскользнул на пару миллисекунд, пусть будет так, но мне нужно точное измерение фактического времени, затраченного в текущем процессе

Если то, что вы имеете в виду, это использование встроенной оболочки time , то трехзначная точность – это ограничение по дизайну – по словам man bash :

 TIMEFORMAT The value of this parameter is used as a format string specify‐ ing how the timing information for pipelines prefixed with the time reserved word should be displayed. The % character intro‐ duces an escape sequence that is expanded to a time value or other information. The escape sequences and their meanings are as follows; the braces denote optional portions. %% A literal %. %[p][l]R The elapsed time in seconds. %[p][l]U The number of CPU seconds spent in user mode. %[p][l]S The number of CPU seconds spent in system mode. %P The CPU percentage, computed as (%U + %S) / %R. The optional p is a digit specifying the precision, the number of fractional digits after a decimal point. A value of 0 causes no decimal point or fraction to be output. At most three places after the decimal point may be specified; values of p greater than 3 are changed to 3. If p is not specified, the value 3 is used. 

Для кажущихся более точных измерений вы можете попробовать использовать date с настраиваемым форматированием вывода, чтобы показать наносекунды:

 Tstart=$(date "+%s.%N") some_command(s) Tend=$(date "+%s.%N") echo "Elapsed: $( Tend-Tstart |bc -l) nanoseconds" 

Однако обратите внимание, что в обоих случаях ( time и date ) у вас есть некоторые накладные расходы, так как системе требуется некоторое время для запуска команд запуска / остановки. Накладные расходы на time меньше, благодаря тому, что он является встроенным. Таким образом, трехзначный предел существует по какой-то причине: остальное – просто случайный мусор.

См. Также этот аналогичный вопрос , хотя принятый ответ содержит небольшую ошибку.