Windows время выполнения команды

Обновлено: 06.07.2024

Есть ли встроенный способ измерения времени выполнения команды в командной строке Windows?

ОТВЕТЫ

Ответ 1

Если вы используете Windows 2003 (обратите внимание, что Windows Server 2008 и более поздние версии не поддерживаются), вы можете использовать набор ресурсов Windows Server 2003 Resource Kit, который содержит timeit.exe, который отображает подробную статистику исполнения. Вот пример, с указанием команды "timeit -?":

Вы можете получить TimeIt в наборе ресурсов Windows 2003. Загрузите его здесь.

Ответ 2

Кроме того, Windows PowerShell имеет встроенную команду, которая похожа на команду Bash time. Он называется "Measure-Command". Вы должны убедиться, что PowerShell установлен на машине, которая ее запускает.

Ответ 3

  • Чтобы измерить время выполнения до сотой доли секунды в формате (hh: mm: ss.ff)
  • Чтобы не загружать и устанавливать пакет ресурсов
  • Чтобы выглядеть как огромный DOS-ботаник (кто этого не делает)

Попробуйте скопировать следующий script в новый пакетный файл (например, timecmd.bat):

Использование

Если вы поместите timecmd.bat в каталог на своем пути, вы можете вызвать его из любого места, как это:

Если вы хотите выполнить перенаправление вывода, вы можете процитировать команду следующим образом:

Это должно обрабатывать команды, которые запускаются от до - до полуночи, но вывод будет неправильным, если ваша команда работает 24 часа и более.

Ответ 4

Хе-хе, самым простым решением может быть следующее:

Это работает на каждой Windows из коробки.

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

Ответ 5

Просто небольшое расширение ответа от Casey.K об использовании Measure-Command from PowerShell:

Вы можете вызвать PowerShell из стандартной командной строки, например:

Это будет стандартный вывод, но вы можете предотвратить это, добавив | Out-Default , как это из PowerShell:

Или из командной строки:

Конечно, вы можете обернуть это в файл script *.ps1 или *.bat .

Ответ 6

Однострочный ящик, используемый в Windows Server 2008 R2:

До тех пор, пока mycommand не требует котировок (которые винты с обработкой кодов cmd). /v:on означает, что два разных значения TIME будут оцениваться независимо, а не один раз при выполнении команды.

Ответ 7

Если у вас открыто командное окно и вызовите команды вручную, вы можете отобразить временную метку в каждом приглашении, например.

Это дает вам что-то вроде:

Если у вас есть небольшая партия script, которая выполняет ваши команды, перед каждой командой должна быть пустая строка, например

(пустая строка)

myCommand.exe

(следующая пустая строка)

myCommand2.exe

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

Ответ 8

Так как другие рекомендуют устанавливать такие вещи, как freeware и PowerShell, вы также можете установить Cygwin, что даст вам доступ ко многим базовым Unix команды, такие как time:

Не уверен, сколько добавочных ресурсов Cygwin добавляет.

Ответ 9

Не так элегантно, как некоторые функции в Unix, но создайте cmd файл, который выглядит так:

Это покажет время начала и остановки:

Ответ 10

Я использую бесплатное программное обеспечение под названием "GS Timer".

Просто создайте пакетный файл следующим образом:

Если вам нужен набор раз, просто подключите вывод таймера /s в файл .txt.

Разрешение составляет 0,1 секунды.

Ответ 11

Я использую Windows XP и по какой-то причине timeit.exe не работает для меня. Я нашел еще одну альтернативу - PTIME. Это работает очень хорошо.

Ответ 12

Пока он длится не более 24 часов.

Ответ 13

Там также TimeMem (март 2012):

Это утилита Windows, которая выполняет программу и отображает ее времени выполнения, использования памяти и статистики ввода-вывода. Это похоже на функциональность утилиты времени Unix.

Ответ 14

Это однострочный, который позволяет избежать отложенного расширения, что может нарушить определенные команды:

Результат выглядит примерно так:

Для долгосрочных тестов замените $T на $D, $T и %TIME% на %DATE%, %TIME% , чтобы включить дату.

Чтобы использовать это внутри командного файла, замените %Z на %%Z .

Update

Вот улучшенный однострочный (без отложенное расширение):

Результат выглядит примерно так:

Этот подход не включает в себя процесс запуска нового cmd в результате и не включает команды prompt .

Ответ 15

Версия таймера Postfix:

таймаут 1 | TimeIt.cmd

Скопируйте и вставьте это в какой-нибудь редактор, например, Notepad ++ и сохраните его как TimeIt.cmd:

Ответ 16

В случае, если кто-то еще пришел сюда, чтобы найти ответ на этот вопрос, есть функция Windows API, называемая GetProcessTimes() . Это не похоже на слишком много работы, чтобы написать небольшую программу на языке C, которая запускает команду, выполняет этот вызов и возвращает время процесса.

Ответ 17

По какой-то причине это дает мне результат всего целых секунд. что для меня бесполезно. Я имею в виду, что я запускаю timecmd pause, и это всегда приводит к 1,00 с, 2,00 с, 4,00 сек. даже 0.00 сек! Windows 7. - Камило Мартин Сен 25 '13 в 16:00 "

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

%time% миллисекунды работают над моей системой, добавив, что ','

(* потому что сайт не разрешает анонимный комментарий и не сохраняет хороший идентификатор, хотя я всегда использую тот же гостевой адрес электронной почты, который в сочетании с ipv6 ip и отпечатком от браузера должен быть достаточно, чтобы однозначно идентифицировать без пароля)

Ответ 18

В каталоге, где находится ваша программа, введите notepad mytimer.bat , нажмите "да", чтобы создать новый файл.

Вставьте код ниже, заменив YourApp.exe на свою программу, а затем сохраните.

Введите mytimer.bat в командной строке и нажмите Enter.

Ответ 19

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

Ответ 20

Ответ 21

Следующий script использует только "cmd.exe" и выводит количество миллисекунд с момента создания конвейера до момента завершения процесса, предшествующего script. т.е. введите команду и переместите ее в script. Пример: "timeout 3 | runtime.cmd" должен давать что-то вроде "2990". Если вам нужен как выход во время выполнения, так и вывод stdin, перенаправление stdin перед каналом - ex: "dir/s 1 > temp.txt | runtime.cmd" выведет вывод команды "dir" в "temp.txt", и будет печатать время выполнения на консоли.

Ответ 22

Следующий script эмулирует * nix эпоху, но он локальный и региональный. Он должен обрабатывать случаи края календаря, включая високосные годы. Если Cygwin, значения эпохи можно сравнить, указав опцию Cygwin.

Я нахожусь в EST, и различие, как сообщается, составляет 4 часа, что относительно правильно. Есть несколько интересных решений для удаления TZ и региональных зависимостей, но ничего тривиального, что я заметил.

Ответ 23

Ответ driblio можно сделать немного короче (хотя и не очень читаемым)

Ответ 24

Вот мой метод, без преобразования и без ms. Полезно определять длительность кодирования (ограниченное до 24 часов):

Ответ 25

Для Luke Sampson nice script, поправки для отрицательных значений должны быть выполнены в обратном порядке, так как они могут сделать отрицательное значение 0 раньше.

Ответ 26

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

Ответ 27

"Lean and Mean" TIMER с региональным форматом, 24h и поддержкой смешанного ввода
Адаптация тела метода замены Aacini, без IF's, только один FOR (мое региональное исправление)

1: Файл timer.bat размещен где-то в% PATH% или текущем каталоге

:: протестировать его, скопировать-вставить как выше, так и ниже секций кода

переменная t2 содержит ваше время выполнения, вы можете отобразить echo %t2% чтобы отобразить ее.

Есть ли встроенный способ для измерения времени выполнения команды в командной строке Windows?

Попробуйте скопировать этот скрипт в новый пакетный файл (например, timecmd.летучая мышь):

Использование

Если вы поставите timecmd.BAT в каталог на вашем пути, вы можете вызывать ее из любого места такой:

Если вы хотите сделать перенаправление вывода, вы можете процитировать команду:

Это должно обрабатывать команды, которые работают от и до - после-полуночи, но вывод будет неверным, если ваша команда работает в течение 24 часов или более.

Хехе, самое простое решение может быть таким:

Это работает на всех Windows из коробки.

В случае подачи заявления с использованием вывода в консоль, это может быть удобно хранить время запуска во временную переменную:

Если вы используете Windows 2003 (обратите внимание, что Windows Server 2008 и более поздние не поддерживаются), вы можете использовать сервер Windows 2003 пакет ресурсов, который содержит timeit.exe который отображает подробную статистику выполнения. Вот пример, сроки команда "раз все -?&я:

[1]: http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=АН "в Windows 2003 С пакет ресурсов"и

Просто немного расширению ответ от Кейси.К о помощи мера-команду ОТ в PowerShell:

  1. Вы можете вызвать PowerShell из стандартной командной строке, как это:

я в PowerShell -командная &; мера-команда "и

  1. Это есть стандартный выход, но вы можете предотвратить это путем добавления | отъезда-по умолчанию , как это с помощью PowerShell:

Или из командной строки:

ОДН-vkladyw я использую в Windows сервер 2008 R2:

Если у вас есть команда Открыть окно и вызвать команду вручную, вы можете отобразить метку на каждой строке, например

Это дает вам что-то вроде:

Если у вас небольшой скрипт, который выполняет ваши команды, иметь пустую строку перед каждой командой, например

(следующую пустую строку)

Так как другие рекомендуют устанавливать такие вещи, как бесплатная и PowerShell, вы также можете установить программа, который даст вам доступ ко многим основным командам Unix-подобных время:

Не знаю, сколько накладных с Cygwin добавляет.

Не совсем так элегантно, как некоторые функциональные возможности Unix, но создать cmd-файл, который выглядит как:

Которые будут отображать время начала и окончания, например:

Я использую бесплатные программы под названием "Таймер ГС и".

Просто сделать пакетный файл такой:

Если вам нужно множество раз, просто труба на выходе таймера /с в .файл txt.

Разрешение 0,1 секунды.

> это утилита, которая запускает программу и отображает ее

По времени выполнения, использовании памяти и ввода-вывода статистики. Он похож на функциональность утилиты Unix время.

Это один-лайнер, который предотвращает задержка расширения, что может беспокоить некоторых команд:

На выходе получается нечто вроде:

14:30:27.58$ . 14:32:43.17$ Рэм/

Для долгосрочных испытаний заменить $Т купить $Д $т и %время% " на " %дата%, %времени,% , чтобы включить даты.

Для использования этого внутри батник, заменить %з купить %%з .

Обновление

Вот улучшенная одно-вкладыш (без задержка расширения тоже):

Вывод выглядит примерно так:

2015/09/01, 14:30:27.58$ Рэм/ . 2015/09/01, 14:32:43.17$ подскажите

Такой подход не включает в себя процесс создания нового " ЦМД " в результате, не включают командная строка (с).

Постфиксная версия таймер:

тайм-аут 1 | раз все.УМК

Копировать и усилитель; вставить это в какой-то редактор, например, блокнот и сохранить его как раз все.УМК:

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

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

Командная строка предлагает множество одноцелевых утилит, благодаря которым нет необходимости писать дополнительный код. Команда time – одна из таких команд. Важно помнить, что команда time никак не связана с командой date, которая выводит дату и время системы. Утилита time измеряет время выполнения программы или сценария и сообщает вам полученное значение.

В этом мануале вы узнаете, как использовать команду time и как читать ее выходные данные.

Примечание: Если не указано иное, примеры в этом руководстве выполняются в оболочке Bash в Linux.

1: Время выполнения команды

Чтобы рассчитать продолжительность выполнения команды, укажите в ней time в качестве префикса.

Метод выполнения time зависит от вашей операционной системы. В некоторых оболочках (bash и zsh, например) утилита time является встроенной командой; но также есть и отдельная команда GNU time – и ее аргументы отличаются от тех, что использует встроенная time.

Используйте следующую команду, чтобы посмотреть, как работает time в вашей системе:

Вы получите такой результат:

time is a shell keyword
time is /usr/bin/time

В этом случае есть и встроенная команда оболочки time, и версия time , установленная в каталог /usr/bin/time.

Если вы хотите использовать GNU-версию time, вы можете поставить перед ней обратный слеш:

Если вы этого не сделаете, оболочка будет использовать встроенную версию.

Примечание: Оболочка fish не имеет собственной реализации time. Если вы используете fish, вам нужно убедиться, что у вас установлена GNU команда time.

Оба метода служат одной и той же цели, хотя версия GNU имеет более продвинутые параметры форматирования.

Давайте исследуем время выполнения команды tree в корне вашей файловой системы. Эта команда отобразит визуальное дерево всех ваших файлов и каталогов.

Команда tree не всегда установлена по умолчанию, но в системах Ubuntu и Debian вы можете установить ее с помощью apt:

sudo apt install tree

В macOS ее можно установить с помощью Homebrew:

brew install tree

Теперь, когда команда tree установлена, используйте ее, чтобы просмотреть все файлы в системе, и добавьте к ней префикс time, чтобы узнать, сколько времени это займет:

Вы увидите, как прокручивается информация о файлах. В конце концов команда покажет вам потраченное время:

Обратите внимание, что выполненная вами команда tree / повторяется командой time. Вывод отображает несколько фрагментов информации, но пока мы сосредоточимся на значении total:

tree / 12.24s user 10.37s system 66% cpu 33.827 total

Именно столько времени потребовалось для выполнения команды в секундах.

Команда time также работает, если вы отменили выполнение команды с помощью Ctrl+C. Если вы снова запустите time tree / и быстро нажмете Ctrl+C, вывод команды tree остановится, а на экране будут представлены результаты time за то время, что успела поработать команда до того, как вы ее остановили.

2: Использование ресурсов

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

tree / 12.24s user 10.37s system 66% cpu 33.827 total

Первое значение – user. Это общее количество времени (в CPU-секундах), которое команда провела в пользовательском режиме.

Следующее значение, system – это количество времени (тоже в CPU-секундах), которое команда провела в режиме системы или ядра.

Наконец, cpu – это процент использования ЦП, выделенного команде.

В свою очередь, в режиме ядра исполняемый код имеет неограниченный доступ к системному оборудованию. Этот режим в значительной степени зарезервирован для наиболее надежных функций операционной системы. Когда какой-либо код сталкивается с ошибкой в режиме ядра, из-за полного доступа эти ошибки приводят к сильным сбоям и, как правило, приводят к сбою системы в целом.

Заключение

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

Есть ли встроенный способ измерения времени выполнения команды в командной строке Windows?

спросил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Кроме того, Windows PowerShell имеет встроенную команду, которая похожа на команду Bash time. Он называется "Measure-Command". Вы должны убедиться, что PowerShell установлен на машине, которая ее запускает.

ответил(а) 2020-03-29T19:49:31.036059+03:00 1 год, 7 месяцев назад
    Чтобы измерить время выполнения до сотой доли секунды в формате (hh: mm: ss.ff)
    Чтобы не загружать и устанавливать пакет ресурсов
    Чтобы выглядеть как огромный DOS-ботаник (кто этого не делает)

Попробуйте скопировать следующий script в новый пакетный файл (например, timecmd.bat):

Использование

Если вы поместите timecmd.bat в каталог на своем пути, вы можете вызвать его из любого места, как это:

Если вы хотите выполнить перенаправление вывода, вы можете процитировать команду следующим образом:

Это должно обрабатывать команды, которые запускаются от до - до полуночи, но вывод будет неправильным, если ваша команда работает 24 часа и более.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Хе-хе, самым простым решением может быть следующее:

Это работает на каждой Windows из коробки.

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

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Если вы используете Windows 2003 (обратите внимание, что Windows Server 2008 и более поздние версии не поддерживаются), вы можете использовать набор ресурсов Windows Server 2003 Resource Kit, который содержит timeit.exe, который отображает подробную статистику исполнения. Вот пример, с указанием команды "timeit -?":

Вы можете получить TimeIt в наборе ресурсов Windows 2003. Загрузите его здесь.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Просто небольшое расширение ответа от Casey.K об использовании Measure-Command from PowerShell:

Вы можете вызвать PowerShell из стандартной командной строки, например:

Это будет стандартный вывод, но вы можете предотвратить это, добавив | Out-Default , как это из PowerShell:

Или из командной строки:

Конечно, вы можете обернуть это в файл script *.ps1 или *.bat .

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Однострочный ящик, используемый в Windows Server 2008 R2:

До тех пор, пока mycommand не требует котировок (которые винты с обработкой кодов cmd). /v:on означает, что два разных значения TIME будут оцениваться независимо, а не один раз при выполнении команды.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Если у вас открыто командное окно и вызовите команды вручную, вы можете отобразить временную метку в каждом приглашении, например.

Это дает вам что-то вроде:

Если у вас есть небольшая партия script, которая выполняет ваши команды, перед каждой командой должна быть пустая строка, например

(пустая строка)

myCommand.exe

(следующая пустая строка)

myCommand2.exe


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

ответил(а) 2020-04-07T19:49:54.259027+03:00 1 год, 7 месяцев назад

Так как другие рекомендуют устанавливать такие вещи, как freeware и PowerShell, вы также можете установить Cygwin, что даст вам доступ ко многим базовым Unix команды, такие как time:

Не уверен, сколько добавочных ресурсов Cygwin добавляет.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Не так элегантно, как некоторые функции в Unix, но создайте cmd файл, который выглядит так:

Это покажет время начала и остановки:

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Я использую бесплатное программное обеспечение под названием "GS Timer".

Просто создайте пакетный файл следующим образом:

Если вам нужен набор раз, просто подключите вывод таймера /s в файл .txt.

Разрешение составляет 0,1 секунды.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Я использую Windows XP и по какой-то причине timeit.exe не работает для меня. Я нашел еще одну альтернативу - PTIME. Это работает очень хорошо.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Пока он длится не более 24 часов.

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Там также TimeMem (март 2012):

Это утилита Windows, которая выполняет программу и отображает ее времени выполнения, использования памяти и статистики ввода-вывода. Это похоже на функциональность утилиты времени Unix.


ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Версия таймера Postfix:

таймаут 1 | TimeIt.cmd

Скопируйте и вставьте это в какой-нибудь редактор, например, Notepad ++ и сохраните его как TimeIt.cmd:

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

Это однострочный, который позволяет избежать отложенного расширения, что может нарушить определенные команды:

Результат выглядит примерно так:

Для долгосрочных тестов замените $T на $D, $T и %TIME% на %DATE%, %TIME% , чтобы включить дату.

Чтобы использовать это внутри командного файла, замените %Z на %%Z .

Update

Вот улучшенный однострочный (без отложенное расширение):

Результат выглядит примерно так:

Этот подход не включает в себя процесс запуска нового cmd в результате и не включает команды prompt .

ответил(а) 2020-03-29T19:33:13+03:00 1 год, 7 месяцев назад

По какой-то причине это дает мне результат всего целых секунд. что для меня бесполезно. Я имею в виду, что я запускаю timecmd pause, и это всегда приводит к 1,00 с, 2,00 с, 4,00 сек. даже 0.00 сек! Windows 7. - Камило Мартин Сен 25 '13 в 16:00 "


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

%time% миллисекунды работают над моей системой, добавив, что ','

(* потому что сайт не разрешает анонимный комментарий и не сохраняет хороший идентификатор, хотя я всегда использую тот же гостевой адрес электронной почты, который в сочетании с ipv6 ip и отпечатком от браузера должен быть достаточно, чтобы однозначно идентифицировать без пароля)

Читайте также: