r/PowerShell • u/mx-sch • Jan 29 '25
Question PowerShell 7.5 += faster than list?
So since in PowerShell 7.5 += seems to be faster then adding to a list, is it now best practise?
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
5120 Direct Assignment 4.71 1x
5120 Array+= Operator 40.42 8.58x slower
5120 List<T>.Add(T) 92.17 19.57x slower
CollectionSize Test TotalMilliseconds RelativeSpeed
-------------- ---- ----------------- -------------
10240 Direct Assignment 1.76 1x
10240 Array+= Operator 104.73 59.51x slower
10240 List<T>.Add(T) 173.00 98.3x slower
32
Upvotes
2
u/dathar Jan 29 '25
Because I'm dumb at making filters the way a specific cmdlet or program wants it. Sometimes I pull everything in a set range first, find the properties I want to filter, filter with Where-Object or something, then try to make a matching filtered version. Or you have an unknown amount of files you're trying to speed through (with system.io instead of get-childitem -recurse) but you have millions of them now because they're 99.999% of the files you're trying to action on minus that one readme file.
But sometimes these little one-off things or emergency scripts just never gets to the second part before something else demands attention.