A practical example of why you should filter as far left in your scripts as possible. It might matter.
#1 Get-Service | Where-object { $_.Status -eq 'Running' -and $_.name -like 's*'} #2 Get-Service -name s*| Where-object { $_.Status -eq 'Running'} #1 Measure-Command -Expression {Get-Service | Where-object { $_.Status -eq 'Running' -and $_.name -like 's*'}} #2 Measure-Command -Expression {Get-Service -name s*| Where-object { $_.Status -eq 'Running'}}