Найти общее время выполнения команды или программы в Windows

Иногда вам может понадобиться узнать общее время выполнения команды или программы, которую вы запускаете. Чтобы оптимизировать скрипт или программу, важно знать, сколько времени потребуется для его завершения. Это поможет вам сравнить общее время выполнения программы A с программой B и оптимизировать код, особенно если вы профессиональный разработчик программного обеспечения, аналитик или тестировщик программного обеспечения.

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

Найти общее время выполнения программы или команды

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

PowerShell включает встроенный командлет Measure-Command, который помогает измерять время, необходимое для запуска блоков сценариев, командлетов или даже внешних программ. Вот пример командной строки PowerShell, которая измеряет время, необходимое для завершения командной строки ping google.com :

 Измерить-Команда Out-Host 

После вывода команды ping внизу вы увидите следующую статистику.

 Дни: 0 Часы: 0 Минуты: 0 Секунды: 3 Миллисекунды: 66 Тики: 30660017 ВсегоДней: 3.5486130787037E-05 Всего Часов: 0.000851667138888889 Всего Минуты: 0.0511000283333333 ВсегоСекунд: 3.0660017 Всего Миллисекунд: 3066.0017 

Узнайте больше о Measure-Object в Microsoft Docs.

Выполнение команды заняло 3, 06 секунды. Аргумент Out-Host, если он опущен, PowerShell скрывает вывод (команды Ping ) в консоли - вы увидите только статистику выполнения.

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

$config[ads_text6] not found
 Измерить-запустить команду-процесс "d: \ batch \ backup.bat" 
СВЯЗАННЫЕ: найти количество слов, символов и строк в текстовом файле с помощью PowerShell

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

Вот простой VBScript, который вычисляет общее время выполнения командной строки, программы или пакетного файла.

 Установите WshShell = WScript.CreateObject ("WScript.Shell") sCmd = chr (34) & "D: \ Batch Files \ Backup.bat" & chr (34) dtmStartTime = Timer Return = WshShell.Run (sCmd, 1, true ) Wscript.Echo "Задача выполнена в" & Round (Timer - dtmStartTime, 2) & "seconds". 
  1. Скопируйте приведенный выше код в блокнот
  2. Сохраните файл как exec_timer.vbs .
  3. Во 2-й строке, которая начинается с sCmd, измените программу, которую вы хотите запустить, т.е. замените "D:\Batch Files\Backup.bat" в приведенном выше примере на приложение или пакет, который вы хотите запустить.
  4. Сохраните файл и закройте Блокнот.
  5. Дважды щелкните файл VBScript, чтобы запустить его.

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


Использование TimeIt.exe из Resource Kit Tools

TimeIt.exe является частью средства Windows Server 2003 Resource Kit, которое показывает время выполнения программы или команды. Эта программа отлично работает и на Windows 10.

  1. После загрузки RK Tools откройте файл rktools.exe с помощью 7-Zip.
  2. Затем откройте внутри rktools.msi

  3. Найдите TimeIt.exe и распакуйте в папку.

Чтобы запустить команду или командный файл и измерить его общее время выполнения, вот несколько примеров:

 timeit.exe ping google.com 
 timeit.exe C: \ Batch Files \ Run времени выполнения команды \ backup.bat 

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

Дополнительная информация

Когда я писал статью о извлечении аудио из видеофайла с помощью FFmpeg.exe, я думал об измерении времени выполнения команды. Я использовал приведенный выше скрипт для измерения времени, необходимого для извлечения аудио MP3 из файла фильма, используя инструмент командной строки FFmpeg.exe.

Первая партия включала эту командную строку:

 ffmpeg -i "C: \ Movies \ Movie.mp4" -ss 01:20:00 -t 00:00:20 -кодек: libmp3lame -ab 128000 "D: \ output-1.mp3" 

Вторая партия включала эту командную строку:

 ffmpeg -ss 01:20:00 -i "C: \ Movies \ Movie.mp4" -t 00:00:20 -codec: библиотека libmp3lame -ab 128000 "D: \ output-2.mp3" 

Как видите, количество аргументов командной строки и соответствующие значения одинаковы. Единственное отличие состоит в том, что параметр -ss (начальная точка) помещается перед параметром -i (ввод файла) во 2-м пакетном файле. Метод называется «Поиск ввода» согласно документации FFmpeg.exe. Первый метод называется « -ss вывода», в котором параметр -i (входной файл) отображается перед параметром -ss .

  • В документации FFmpeg говорится, что метод поиска ввода намного быстрее, чем поиск вывода, потому что при использовании первого метода FFmpeg.exe переходит (ищет) непосредственно к указанной начальной точке во входном файле и начинает декодирование с этой точки и далее.
  • Принимая во внимание, что метод поиска вывода сначала открывает файл, начинает декодирование с 00:00:00, а затем отбрасывает данные до тех пор, пока они не достигнут -ss Начальная точка 01:20:00 . Таким образом, системные ресурсы (процессор, память и дисковый ввод-вывод) тратятся впустую, а время выполнения увеличивается при использовании метода поиска вывода.
СВЯЗАННЫЕ: конвертировать MP4 или любое видео в MP3 (извлечь аудио из видео файла)

Документация FFmpeg.exe правильная. Когда я тестировал, поиск ввода выполнялся намного быстрее, чем метод поиска вывода.

$config[ads_text6] not found
  • 1-я команда (поиск по выходу) заняла 20, 48 секунды.
  • Вторая команда (поиск ввода) заняла 16, 62 секунды.

Если вам известны какие-либо другие методы измерения времени выполнения процесса, сценария или команды, давайте узнаем.

ПОХОЖИЕ СТАТЬИ