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

[原创教程] PowerShell 技能连载 - 加速数组操作

[复制链接]
发表于 2014-7-5 13:41:38 | 显示全部楼层 |阅读模式
当您频繁地向数组添加新元素时,您可能会遇到性能问题。以下是一个演示这个问题的反例,您应该避免这样使用:

Measure-Command {
  $ar = @()

  for ($x=0; $x -lt 10000; $x++)
  {
    $ar += $x  
  }
}
在循环中,数组用“+=”运算符不断地添加新元素。这将消耗许多时间,因为每次改变数组的大小时,PowerShell 都需要创建一个新的数组。

以下是一个快许多倍的实现方式——用 ArrayList,它专门为大小变化的情况设计:

Measure-Command {
  $ar = New-Object -TypeName System.Collections.ArrayList

  for ($x=0; $x -lt 10000; $x++)
  {
    $ar.Add($x)
  }
}
两段代码实现相同的效果,但第二段效率要高得多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 02:31 , Processed in 0.012274 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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