Actualmente estoy leyendo el libro paso a paso de Windows PowerShell 3.0 para obtener más información sobre PowerShell.
En la página 201, el autor demuestra que un filtro es más rápido que la función con la misma funcionalidad.
Este script toma 2.6 segundos en su computadora:
MeasureAddOneFilter.ps1
Filter AddOne
{
"add one filter"
$_ + 1
}
Measure-Command { 1..50000 | addOne }
y este 4.6 segundos
MeasureAddOneFunction.ps1
Function AddOne
{
"Add One Function"
While ($input.moveNext())
{
$input.current + 1
}
}
Measure-Command { 1..50000 | addOne }
Si ejecuto este código es obtener exactamente lo contrario de su resultado:
.\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
¿Alguien puede explicarme esto?
fuente