Измерение времени выполнения команды в миллисекундах

Я запускаю Ubuntu 18.04 и плохо знаком с Ubuntu и Linux в целом. Я пытаюсь измерить время выполнения команды вниз к миллисекунде. Я также хотел бы добавить на этот раз в файл, потому что я делаю это много времен в для цикла. Наконец, я хотел бы иметь самый простой и легкий читаемый синтаксис.

Длинная короткая история: Я хотел бы /usr/bin/time управляйте для возврата результата, точного миллисекунде.

Я считал другие потоки, упомянув переменную среды формата времени, но никогда как изменить ее.

Заранее спасибо за справку.

РЕДАКТИРОВАНИЕ: Принимая все ответы во внимание, решение было чем-то как

#!/bin/bash  
ts=$(date +%s%N)  
command  
echo "formatting $((($(date +%s%N) - $ts)/1000000)) formatting" >> file_to_append_time_to  
6
задан 5 October 2018 в 02:46

1 ответ

Эти time сама команда не способна к выполнению этого непосредственно. Это действительно производит время в дробном формате, таким образом, это может быть проанализировано назад в миллисекунды путем умножения на 1 000:

$ time sleep 1s
> real    0m1.006s
$ echo '1.006 * 1000' | bc
> 1006.000

Это означает, что Вы можете отчасти делать команду, которая делает это через:

{ time $@ ; } |& grep real | sed -E 's/[^0-9\.]+//g' | tr -d '\n' | (cat && echo " * 1000") | bc

Это по существу анализирует вывод time и умножает его на 1 000. Это - путаница, потому что, ну, в общем, колотят.

, Вероятно, лучше/больше полезная путаница была бы этим пользователем сценария Infineight отправленный на Переполнении стека :

#!/bin/bash
ts=$(date +%s%N)
$@
echo $((($(date +%s%N) - $ts)/1000000))

Это (я развернул его для удобочитаемости) сохраняет текущую метку времени наносекунды от date, выполняет команду, затем делает вычитание для вычисления, время протекло и форматирует его в миллисекунды.

В моем тестировании они оба, казалось, привели к тем же результатам.

4
ответ дан 23 November 2019 в 07:58

Другие вопросы по тегам:

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