Подтвердить что ты не робот

/usr/bin/time - выходное время форматирования в миллисекундах

Я использую программу /usr/bin/time для измерения времени для команды. с параметром --format я могу форматировать вывод. например.

/usr/bin/time -f "%e" ls

Есть ли способ вывести большую точность прошедших секунд? или просто вывести миллисекунды, а не секунды?

В руководстве /usr/bin/time он говорит только что-то о секундах, но, возможно, есть способ, и кто-то может мне помочь... спасибо!

ИЗМЕНИТЬ: Я знаю о команде bash "время", которая использует формат переменной среды "TIMEFORMAT". извините, но я не хочу менять этот env-var... кажется мне рискованным, решение должно быть тем, что вообще не изменяет запущенную систему:)

4b9b3361

Ответ 1

Одна из возможностей заключается в использовании команды date:

ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"

%N должен вернуть наносекунды, а 1 миллисекунда - 1000000 наносекунд, следовательно, по делению будет возвращено время, затраченное на выполнение my_command в миллисекундах.

ПРИМЕЧАНИЕ, что %N не поддерживается во всех системах, но большинство из них.

Ответ 2

Для удобства я сделал devnull ответ в script (я назвал его миллисекундным временем).

#!/bin/bash
ts=$(date +%s%N) ; [email protected] ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"

Я положил script в /usr/local/bin.
Предоставлял ему права на выполнение chmod +x /usr/local/bin/millisecond-time.
Теперь я могу использовать его следующим образом: millisecond-time my_command

P.s. Это был бы комментарий, если бы у меня была репутация.