Script-Geschwindigkeit mit Measure-Command messen mit PowerShell

Die Windows PowerShell gewinnt immer mehr an Bedeutung, da diese sehr mächtig ist. Es gibt so gut wie nichts, was die PowerShell nicht erledigen kann. Deswegen werden in der heutigen Zeit immer mehr Scripte in ps1-Dateien geschrieben, da diese auch sehr schnell sind. Es gibt sogar die Möglichkeit die Script-Geschwindigkeit zu messen mit dem Befehl Measure-Command. In einem früheren Beitrag haben wir bereits erklärt, dass es bei der Definition von Strings darauf ankommt, ob ein Hochkomma oder ein Anführungszeichen genutzt wird. Bereits das hat Auswirkungen auf die Geschwindigkeit eines PowerShell Befehls. Wir zeigen euch, wie man mit Measure-Command die Geschwindigkeit der Abarbeitung messen kann.

 

Mit Measure-Command die Zeit der Ausführung messen

Mit diesem PowerShell CMDlet ist es möglich die Dauer der Abarbeitung eines Scripts zu messen. Hier wird die verstrichene Zeit gemessen, die PS zum Abarbeiten von Script-Blöcken oder einzelner cmdlets benötigt. Angegeben werden können alle möglichen Befehle. Die Dauer von Anweisungen sind meist sehr minimal. Interessant wird es aber beim Ausführen von großen Scripts mit mehreren hundert oder tausend Zeilen. Auch sehr interessant ist das Messen von Datenbank-Abfragen oder schreiben von Daten.

 

Verwenden von Measure-Command in PowerShell

Mit dem PowerShell Cmdlet (Commandlet) Measure-Command kann man wie oben schon erwähnt die Dauer messen, wie lange eine gewisse Aktion dauert. Die Script-Geschwindigkeit ist oft ausschlaggebend für die Weiterverarbeitung von Daten. Doch wie verwendet man diesen Befehl?

Measure-Command { <BEFEHL> }

Der Befehl der gemessen werden soll, muss in geschweiften Klammern geschrieben werden. Ein Beispiel wäre hier:

Measure-Command {get-childitem "c:\windows\system32" -recurse}

Measure-Command PowerShell Zeit messen

Mit diesem Befehl werden alle Dateien im Angegebenen Verzeichnis aufgelistet. In der Auswertung am Schluss sieht man, dass PowerShell 866 Milli-Sekunden benötigt hat. Natürlich kann man ein komplettes Script einklammern und dadurch die Script-Geschwindigkeit auswerten.

Als zweites Beispiel habe ich eine Schleife, welche 100.000 mal durchlaufen wird und als Text “Laufzeit testen” ausgibt. Hier ist die Laufzeit um einiges länger:

Measure-Command {
	for ($i = 0; $i -lt 100000; $i++) {
		write-host 'Laufzeit testen.'
	}
}
Days              : 0
Hours             : 0
Minutes           : 1
Seconds           : 24
Milliseconds      : 24
Ticks             : 840248369
TotalDays         : 0,000972509686342593
TotalHours        : 0,0233402324722222
TotalMinutes      : 1,40041394833333
TotalSeconds      : 84,0248369
TotalMilliseconds : 84024,8369

Hier sieht man, dass diese Operation 1 Minute, 24 Sekunden und 24 Millisekunden an Zeit benötigt hat. So einfach ist es eine Script-Geschwindigkeit testen zu können.

 

Unterschied zwischen Anführungszeichen und Apostroph

In einem früheren Beitrag haben wir schon die Unterschiede zwischen Anführungszeichen und eines Apostrophs beim Deklarieren von Strings aufgezeigt. Auch hier wurde eine Zeitmessung mit Measure-Command durchgeführt um die Unterschiede aufzuzeigen.

https://www.itnator.net/unterschied-hochkomma-und-anfuehrungszeichen-in-powershell/

Johannes Huber
 

In seiner Freizeit macht Johannes nichts lieber, als für ITnator Beiträge zu schreiben. Input bekommt er hierfür von Problemen in der IT Administration von Servern, Clients und vielen weiteren IT Komponenten.

Click Here to Leave a Comment Below 0 comments