Saat ini saya membaca buku PowerShell 3.0 Langkah demi Langkah untuk mendapatkan wawasan lebih lanjut tentang PowerShell.
Pada halaman 201 penulis menunjukkan bahwa filter lebih cepat daripada fungsi dengan fungsi yang sama.
Script ini membutuhkan 2,6 detik di komputernya:
MeasureAddOneFilter.ps1
Filter AddOne
{
"add one filter"
$_ + 1
}
Measure-Command { 1..50000 | addOne }
dan ini 4,6 detik
MeasureAddOneFunction.ps1
Function AddOne
{
"Add One Function"
While ($input.moveNext())
{
$input.current + 1
}
}
Measure-Command { 1..50000 | addOne }
Jika saya menjalankan kode ini adalah kebalikan dari hasilnya:
.\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
Adakah yang bisa menjelaskan hal ini kepada saya?