- $arr=1..100000
- $t1=[System.Environment]::TickCount
- $A=$arr.ForEach({
- #param([object]$x,[object]$y)
- $x=15
- $y=5
- $_*$x+$y
-
- })
- $t2=[System.Environment]::TickCount
- $B=foreach($i in $arr){
- $x=15
- $y=5
- $i*$x+$y
- }
- $t3=[System.Environment]::TickCount
- $C=$arr|%{
- param([int]$x,[int]$y)
- $x=15
- $y=5
- $_*$x+$y
- }
- ([System.Environment]::TickCount-$t1).ToString('0 ms')
- ([System.Environment]::TickCount-$t2).ToString('0 ms')
- ([System.Environment]::TickCount-$t3).ToString('0 ms')
复制代码 感觉测试A有点意思去掉param速度就上来了,不去掉反而速度下降很多,有没人解释一下? |