Tôi hiện đang đọc cuốn sách Windows PowerShell 3.0 Từng bước để hiểu thêm về PowerShell.
Trên trang 201, tác giả chứng minh rằng bộ lọc nhanh hơn chức năng có cùng chức năng.
Kịch bản này mất 2,6 giây trên máy tính của anh ấy:
MeasureAddOneFilter.ps1
Filter AddOne
{
"add one filter"
$_ + 1
}
Measure-Command { 1..50000 | addOne }
và cái này 4,6 giây
MeasureAddOneFunction.ps1
Function AddOne
{
"Add One Function"
While ($input.moveNext())
{
$input.current + 1
}
}
Measure-Command { 1..50000 | addOne }
Nếu tôi chạy mã này thì ngược lại với kết quả của anh ta:
.\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
Ai đó có thể giải thích điều này với tôi?