Как получить время выполнения Bash в миллисекундах в Mac OS X?

Я проверил это , но предоставленное решение не сработало для меня.

Используя дату, я могу получить время выполнения в секундах:

T="$(date +%s)" #some work here T="$(($(date +%s)-T))" echo "execution time (secs) ${T}" 

Однако, когда я пробую это:

 T="$(date +%s%N)" #some work here T="$(($(date +%s%N)-T))" 

Добавляя% N (как указано выше) к дате получения nano-second precision, я получаю следующую ошибку: –bash: 1369320760N: слишком большое значение для базы (токен ошибки – «1369320760N»)

Кто-нибудь знает, как измерить время выполнения в миллисекундах, используя bash в Mac OS X?

Поскольку OSX является BSD-ish-системой, в библиотеке strftime нет %N ( http://www.freebsd.org/cgi/man.cgi?query=date )

Команда bash builtin time дает вам необходимую информацию?

 time some work here 

Я бы пошел по этому маршруту, если мне понадобилось миллисекунды, а BSD не поддерживал дату +%s%N

 perl -MTime::HiRes -e 'printf("%.0f\n",Time::HiRes::time()*1000)' 

echo $(($(date +%s%N)/1000000))

Это будет конвертировать с наносекунд в миллисекунды.

Из @mpy, date +%s.%N работает.

Выход отличается от linux и OS X:
Linux: 1369322592.573787111
OS X: 1369322610.N

Как упоминалось в другом ответе, дата OS X не поддерживает% N (наносекунды).

Не могли бы вы просто сохранить команды во времени в качестве сценария? Или используйте для них подоболочку или командную группу:

 time (sleep 0.1; echo a; sleep 0.1) time { sleep 0.1; echo a; sleep 0.1; } 

Или суммируйте время отдельных команд:

 $ time=$(TIMEFORMAT=%R; (time sleep 0.1; echo a) 2>&1 > /dev/null) $ time+=+$(TIMEFORMAT=%R; (time sleep 0.1) 2>&1) $ bc <<< $time .206 

Или используйте некоторые скриптовые языки:

 $ ruby -e 'puts "%.3f" % Time.now' 1369329611.046 $ time ruby -e '""' 0.029 $ time ruby -e 'puts "%.3f" % Time.now' 1369329622.943 0.029 

%.3f – спецификатор формата для числа с плавающей запятой с 3 десятичными точками. Time.now – это метод класса класса Time.

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

time command-goes-here >/dev/null 2>$1|sed rules-go-here

Эта команда избавится от вывода самой команды (отправляет как стандартные, так и ошибки в / dev / null) и передает результаты времени sed, где вам нужно будет выбрать соответствующие правила для редактирования потока и вывода Желаемое значение.

Если вы устанавливаете coreutils вы можете использовать date GNU Linux, написав gdate .

Coreutils доступен с Homebrew: brew install coreutils .

  • Что является официальным установщиком для пакетов Unix в Mac OS?
  • В чем разница между Unix и Linux?
  • Unix: как объединить два каталога
  • Печать страниц с 7 по 17 по lpr
  • Несколько параметров для сценария bash
  • Linux-top / netstat / etc. На Mac OS X?
  • Что такое эффект CTRL + Z в приложении unix \ Linux
  • Linux / Unix в Windows
  • Пересылка порта ssh с удаленного места на компьютеры в сети сервера
  • Мониторинг среднего использования ЦП и использования ОЗУ на одном потоке процессов
  • Как переключаться между окнами на VIM?
  • Interesting Posts

    Предложения по шаблонам электронной почты Java?

    Проверять поля с помощью проверки JQuery без отправки?

    Поля для участников, порядок строительства

    Как я могу сделать несколько проектов совместно с каталогом node_modules?

    Как вы перенаправляетесь на страницу с помощью глагола POST?

    Как вы проверяете, соответствует ли двойное значение NaN?

    Как завершить stream в C ++ 11?

    Может ли Bitlocker использоваться в двойной системе загрузки с Windows на одном диске, Linux на другом?

    Как отключить адаптер ATI на временной шкале Acer 4810G с помощью ubuntu 9.10

    Массовое отслеживание электронной почты

    В чем разница между пустым и нулевым std :: shared_ptr в C ++?

    Где используются чипы Intel Itanium?

    Ноутбук с Windows 7 автоматически включается, находясь в состоянии «сна»

    В чем разница между форматами даты ISO 8601 и RFC 3339?

    Разница между облачными вычислениями и распределенными вычислениями?

    Давайте будем гением компьютера.