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

Find Total Execution Time Command

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



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





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

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

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

Команда измерения ping google.com

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



Дней: 0 Часы: 0 Минуты: 0 Секунды: 3 Миллисекунды: 66 Тактов: 30660017 Всего дней: 3,5486130787037E-05 Всего часов: 0,000851667138888889 Всего минут: 0,0511000283333333 Всего секунд: 3,0660017 Всего миллисекунд: 3066.0017

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

Узнать больше о Мера-объект в Microsoft Docs.

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

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

Measure-Command Out-Host
СВЯЗАННЫЙ: Найдите количество слов, символов и строк в текстовом файле с помощью 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 'Задача завершена за' & Раунд (Таймер - dtmStartTime, 2) & 'секунды.'
  1. Скопируйте указанный выше код в Блокнот
  2. Сохраните файл как exec_timer.vbs .
  3. Во второй строке, которая начинается с sCmd измените программу, которую хотите запустить, т.е. замените 'D: Пакетные файлы Backup.bat' в приведенном выше примере с приложением или пакетом, который вы хотите запустить.
  4. Сохраните файл и закройте Блокнот.
  5. Дважды щелкните файл VBScript, чтобы запустить его.

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

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


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

TimeIt.exe является частью Windows Server 2003 Набор ресурсов ( зеркальная ссылка ) инструмент, показывающий время выполнения программы или команды. Эта программа также отлично работает в Windows 10.

 Информационный файл: rktools.exe - SHA256 - 6260d75a2cb30201c5424defec3ba505edb92b91802825e2fd6eb9bd58ed5cca 
  1. После загрузки RK Tools откройте rktools.exe с помощью 7-Zip.
  2. Затем откройте внутри rktools.msi
    измерять общее время выполнения команды или программы
  3. найти TimeIt.exe и распаковать в папку.

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

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

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

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

Больше информации

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

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

ffmpeg -i 'C:  Movies  Movie.mp4' -ss 01:20:00 -t 00:00:20 -codec: a libmp3lame -ab 128000 'D:  output-1.mp3'

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

ffmpeg -ss 01:20:00 -i 'C:  Movies  Movie.mp4' -t 00:00:20 -codec: a libmp3lame -ab 128000 'D:  output-2.mp3'

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

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

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

  • Первая команда (поиск вывода) заняла 20,48 секунды.
  • Вторая команда (поиск ввода) заняла 16,62 секунды.

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


Одна небольшая просьба: если вам понравился этот пост, поделитесь им?

Одна «крошечная» публикация от вас серьезно помогла бы росту этого блога. Несколько отличных предложений:
  • Приколи это!
  • Поделитесь этим в своем любимом блоге + Facebook, Reddit
  • Напишите об этом в Твиттере!
Так что большое спасибо за вашу поддержку, мой читатель. Это займет не более 10 секунд вашего времени. Кнопки «Поделиться» находятся прямо внизу. :)