Ich lese derzeit das Schritt-für-Schritt-Buch zu Windows PowerShell 3.0, um weitere Einblicke in PowerShell zu erhalten.
Auf Seite 201 zeigt der Autor, dass ein Filter schneller als die Funktion mit derselben Funktion ist.
Dieses Skript dauert auf seinem Computer 2,6 Sekunden:
MeasureAddOneFilter.ps1
Filter AddOne
{
"add one filter"
$_ + 1
}
Measure-Command { 1..50000 | addOne }
und dieser 4,6 Sekunden
MeasureAddOneFunction.ps1
Function AddOne
{
"Add One Function"
While ($input.moveNext())
{
$input.current + 1
}
}
Measure-Command { 1..50000 | addOne }
Wenn ich diesen Code ausführe, ist das genaue Gegenteil von seinem Ergebnis:
.\MeasureAddOneFilter.ps1
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 226
Ticks : 2266171
TotalDays : 2,62288310185185E-06
TotalHours : 6,29491944444444E-05
TotalMinutes : 0,00377695166666667
TotalSeconds : 0,2266171
TotalMilliseconds : 226,6171
.\MeasureAddOneFunction.ps1
Days : 0
Hours : 0
Minutes : 0
Seconds : 0
Milliseconds : 93
Ticks : 933649
TotalDays : 1,08061226851852E-06
TotalHours : 2,59346944444444E-05
TotalMinutes : 0,00155608166666667
TotalSeconds : 0,0933649
TotalMilliseconds : 93,3649
Kann mir das jemand erklären?
quelle