Ermitteln Sie die Gesamtausführungszeit eines Befehls oder Programms in Windows

Manchmal möchten Sie möglicherweise die Gesamtausführungszeit eines Befehls oder Programms ermitteln, das Sie ausführen. Um ein Skript oder Programm zu optimieren, ist es wichtig zu wissen, wie lange es dauert, bis die Ausführung abgeschlossen ist. Auf diese Weise können Sie die Gesamtlaufzeit von Programm A mit Programm B vergleichen und Ihren Code optimieren, insbesondere wenn Sie ein professioneller Softwareentwickler, Analyst oder Softwaretester sind.

Das Messen der Gesamtausführungszeit eines Skripts oder Prozesses ist einer der wichtigsten Aspekte der Leistungsoptimierung. In diesem Artikel werden verschiedene Methoden zum Ermitteln der Gesamtausführungszeit eines Programms, Skripts oder Befehls in Windows beschrieben.

Ermitteln Sie die Gesamtausführungszeit eines Programms oder Befehls

Verwenden von PowerShell

PowerShell enthält das integrierte Cmdlet " Measure-Command ", mit dem Sie die Zeit messen können, die zum Ausführen von Skriptblöcken, Cmdlets oder sogar externen Programmen erforderlich ist. Hier ist ein Beispiel für eine PowerShell-Befehlszeile, die die Zeit misst, die die ping google.com Befehlszeile von ping google.com, um fertig zu werden:

 Measure-Command Out-Host 

Nach der Ausgabe des Ping-Befehls werden unten die folgenden Statistiken angezeigt.

 Tage: 0 Stunden: 0 Minuten: 0 Sekunden: 3 Millisekunden: 66 Ticks: 30660017 TotalDays: 3.5486130787037E-05 TotalHours: 0.000851667138888889 TotalMinutes: 0.0511000283333333 TotalSeconds: 3.0660017 TotalMilliseconds: 3066.0017 

Weitere Informationen zu Measure-Object finden Sie in Microsoft Docs.

$config[ads_text6] not found

Der Befehl dauerte 3, 06 Sekunden. Wenn das Out-Host Argument weggelassen wird, verbirgt PowerShell die Ausgabe (des Ping Befehls) in der Konsole. Es werden nur die Ausführungsstatistiken angezeigt.

Wenn Sie eine lange Befehlszeile haben oder mehrere Befehle ausführen müssen, können Sie diese in eine Windows-Batchdatei einfügen und dann mit PowerShell ausführen. Hier ist ein Beispiel:

 Measure-Command Start-Process "d: \ batch \ backup.bat" 
VERBINDUNG: Ermitteln Sie mithilfe von PowerShell die Anzahl der Wörter, Zeichen und Zeilen in einer Textdatei

Verwenden von VBScript

Hier ist ein einfaches VBScript, das die Gesamtausführungszeit einer Befehlszeilen-, Programm- oder Batchdatei berechnet.

 Setzen Sie WshShell = WScript.CreateObject ("WScript.Shell") sCmd = chr (34) & "D: \ Batch-Dateien \ Backup.bat" & chr (34) dtmStartTime = Timer Return = WshShell.Run (sCmd, 1, true ) Wscript.Echo "Die Aufgabe wurde in" & Round (Timer - dtmStartTime, 2) & "Sekunden" abgeschlossen. 
  1. Kopieren Sie den obigen Code in den Editor
  2. Speichern Sie die Datei als exec_timer.vbs .
  3. Ändern Sie in der zweiten Zeile, die mit sCmd beginnt, das Programm, das Sie ausführen möchten, dh ersetzen "D:\Batch Files\Backup.bat" im obigen Beispiel "D:\Batch Files\Backup.bat" durch die Anwendung oder den Batch, den Sie ausführen möchten.
  4. Speichern Sie die Datei und schließen Sie den Editor.
  5. Doppelklicken Sie auf die VBScript-Datei, um sie auszuführen.

Das VBScript startet die Batchdatei, den Befehl oder das Programm. Nach Beendigung der Ausführung wird die Gesamtausführungszeit angezeigt (in Sekunden).


Verwenden von TimeIt.exe aus den Resource Kit-Tools

TimeIt.exe ist Teil des Windows Server 2003 Resource Kit-Tools, das die Programm- oder Befehlsausführungszeiten anzeigt. Dieses Programm läuft auch unter Windows 10 einwandfrei.

  1. Öffnen Sie nach dem Herunterladen der RK Tools die Datei rktools.exe mit 7-Zip.
  2. Öffnen Sie dann in rktools.msi

  3. Suchen Sie TimeIt.exe und extrahieren Sie es in einen Ordner.

Hier einige Beispiele, um einen Befehl oder eine Batchdatei auszuführen und die Gesamtausführungszeit zu messen:

 timeit.exe ping google.com 
 timeit.exe C: \ Batch Files \ Measure Befehlslaufzeit \ backup.bat 

TimeIt zeigte unter anderem die Prozessabgangszeit und die verstrichene Zeit an. Bei der Überprüfung stimmte der geschriebene Bytewert nicht mit der Größe der Ausgabedatei überein. Die gelesenen / geschriebenen Informationen zu Bytes werden in diesem Artikel jedoch nicht behandelt.

Mehr Informationen

Beim Schreiben des Artikels über das Extrahieren von Audio aus einer Videodatei mit FFmpeg.exe habe ich daran gedacht, die Ausführungszeit des Befehls zu messen. Ich habe das obige Skript verwendet, um die Zeit zu messen, die zum Extrahieren von MP3-Audio aus einer Filmdatei mit dem Befehlszeilentool FFmpeg.exe benötigt wird.

Der erste Stapel enthielt diese Befehlszeile:

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

Der 2. Stapel enthielt diese Befehlszeile:

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

Wie Sie sehen können, sind die Anzahl der Befehlszeilenargumente und die entsprechenden Werte genau gleich. Der einzige Unterschied besteht darin, dass der Parameter -ss (Startpunkt) in der 2. Batchdatei vor dem Parameter -i (Dateieingabe) steht. Die Methode wird gemäß der Dokumentation zu FFmpeg.exe als Eingabesuche bezeichnet. Die erste Methode heißt Ausgabesuche, wobei der Parameter -i (Eingabedatei) vor dem Parameter -ss wird.

  • In der FFmpeg-Dokumentation heißt es, dass die Eingabesuchmethode viel schneller ist als die Ausgabesuche, da FFmpeg.exe bei Verwendung der vorherigen Methode direkt zum genannten Startpunkt in der Eingabedatei springt (sucht) und ab diesem Punkt mit der Dekodierung beginnt.
  • Während die Ausgabesuchmethode zuerst die Datei öffnet, ab 00:00:00 Decodieren beginnt und dann die Daten verwirft, bis sie den -ss Startpunkt 01:20:00 . Daher werden die Systemressourcen (CPU, Speicher und Festplatten-E / A) verschwendet und die Ausführungszeit erhöht, wenn Sie die Ausgabesuchmethode verwenden.
VERBINDUNG: Konvertieren Sie MP4 oder ein beliebiges Video in MP3 (Audio aus Videodatei extrahieren)

Die Dokumentation zu FFmpeg.exe ist korrekt. Beim Testen lief die Eingabesuche viel schneller als die Ausgabesuchmethode.

  • Der erste Befehl (Ausgabesuche) dauerte 20, 48 Sekunden.
  • Der 2. Befehl (Eingabesuche) dauerte 16, 62 Sekunden.

Wenn Sie andere Methoden zum Messen der Ausführungszeit eines Prozesses, Skripts oder Befehls kennen, lassen Sie es uns wissen.

$config[ads_text6] not found

Ähnlicher Artikel