ขณะนี้ฉันกำลังอ่านหนังสือ Windows PowerShell 3.0 ทีละขั้นตอนเพื่อรับข้อมูลเชิงลึกเพิ่มเติมเกี่ยวกับ PowerShell
ในหน้า 201 ผู้เขียนแสดงให้เห็นว่าตัวกรองนั้นเร็วกว่าฟังก์ชั่นที่ใช้งานได้
สคริปต์นี้ใช้เวลา 2.6 วินาทีในคอมพิวเตอร์ของเขา:
MeasureAddOneFilter.ps1
Filter AddOne
{
"add one filter"
$_ + 1
}
Measure-Command { 1..50000 | addOne }
และอันนี้ 4.6 วินาที
MeasureAddOneFunction.ps1
Function AddOne
{
"Add One Function"
While ($input.moveNext())
{
$input.current + 1
}
}
Measure-Command { 1..50000 | addOne }
หากฉันใช้รหัสนี้จะได้ผลลัพธ์ตรงข้ามกับเขาทุกประการ:
.\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
มีคนอธิบายเรื่องนี้กับฉันได้ไหม