找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 12904|回复: 0

[技术讨论] 关于PowerShell3中foreach循环测试

[复制链接]
发表于 2023-10-19 05:55:20 | 显示全部楼层 |阅读模式
  1. $arr=1..100000
  2. $t1=[System.Environment]::TickCount
  3. $A=$arr.ForEach({
  4.     #param([object]$x,[object]$y)
  5.     $x=15
  6.     $y=5
  7.     $_*$x+$y

  8. })
  9. $t2=[System.Environment]::TickCount
  10. $B=foreach($i in $arr){
  11.     $x=15
  12.     $y=5
  13.     $i*$x+$y
  14. }
  15. $t3=[System.Environment]::TickCount
  16. $C=$arr|%{
  17.     param([int]$x,[int]$y)
  18.     $x=15
  19.     $y=5
  20.     $_*$x+$y
  21. }
  22. ([System.Environment]::TickCount-$t1).ToString('0 ms')
  23. ([System.Environment]::TickCount-$t2).ToString('0 ms')
  24. ([System.Environment]::TickCount-$t3).ToString('0 ms')
复制代码
感觉测试A有点意思去掉param速度就上来了,不去掉反而速度下降很多,有没人解释一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 21:59 , Processed in 0.022087 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表