arrays - 对于 PowerShell ArrayList,哪个更快。Add 或 += 运算符?

标签 arrays powershell arraylist

我发现如果您在 PowerShell 中创建一个数组并执行此操作:

$myArray = @()
$myArray += 7

每次执行此语句时,它都会创建一个末尾为 7 的新数组,并返回新数组并删除旧数组!基本上,我们在大约 10,000 次迭代的循环中执行此操作,这使得速度非常慢!

如果我改用 ArrayList,通过调用 .Add(x),我们发现它要快得多。我的问题是哪个代码更快?

$myArrayList.Add(x)

$myArrayList += x

或者它们是一样的?因为我们现有的代码是+= x格式的。我们希望不必将所有代码更改为 .Add(x) 格式。

最佳答案

使用以下命令获得这些结果,迭代 10,000 次。

.add() 用了 0s 45.2869ms

+= 用了 2 秒 900.2777 毫秒

Measure-Command -Expression {
    $i = 0
    $myArrayList = New-Object System.Collections.ArrayList
    Do {
        #$myArrayList.add($i)
        $myArrayList += $i
        $i++
    } While ($i -lt 10000)
}

关于arrays - 对于 PowerShell ArrayList,哪个更快。Add 或 += 运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54208763/

相关文章:

arrays - PostgreSQL:通过函数将对象添加到jsonb数组

arrays - Swift 中的数组可变性追加

powershell - Get-WMIObject 卸载与 Get-CIMInstance 卸载

powershell - 如何以管理员身份并使用批处理文件中的参数运行 PowerShell?

java - 如何使用 VTD-XML 解析器将嵌套的 XML 文件元素放入对象列表?

php - array_merge 是否执行重建索引?

PHP - 使用数组作为类常量

.net - 使用WMI查询已登录用户的结果很奇怪

java - 按顺序循环 ArrayList<String>

java - ArrayList 上加载对象的错误逻辑(该列表有多个具有相同数据的对象)