Как рассчитать время программы в моем скрипте? [дубликат]

0
11.11.2018, 02:58
2 ответа

Предполагая, что dateявляется версией GNU:

start=$(date +%s.%N)
./CircuitRouter-SeqSolver $2
end=$(date +%s.%N)

Другие версии могут иметь или не иметь %Nнаносекундную часть. Чтобы ограничить разрешение шестью знаками после запятой, вы можете делать разные вещи, но проще всего:

printf "%0.6f\n" $((end-start))

Изменить :исправление для bashне выполняет математические операции с плавающей запятой:

printf %0.6f\n" $(echo $end-$start | bc)
1
28.01.2020, 05:05

Вы видели мою посылку boshотhttp://schilytools.sourceforge.net/bosh.html? Это текущая поддерживаемая версия Bourne Shell.

Поддерживает синхронизацию с микросекундной точностью, см. man на страницеhttp://schillix.sourceforge.net/man/man1/bosh.1.htmlв разделе параметров (около страницы 25 )есть описание переменной TIMEFORMAT.

Обратите внимание, что точность системного процессорного времени и пользовательского процессорного времени в Linux составляет всего 1 мс, но время настенных часов может быть получено с точностью до микросекунды.

Вам необходимо знать, что вывод timeвстроенной или автоматизированной синхронизации для каждой команды поступает в stderrосновной оболочки и что вам может потребоваться перенаправить stderrдля команды отдельно, чтобы иметь возможность получать соответствующий вывод в отдельном файле.

-2
28.01.2020, 05:05

Теги

Похожие вопросы