为什么在Powershell中将PSObject添加到ArrayList需要这么长时间?有更好的方法吗?

时间:2016-02-10 22:31:52

标签: .net performance powershell powershell-v3.0

我有以下代码

mylib.cpp

我用Simple数组测试了性能,这更糟糕。

1 个答案:

答案 0 :(得分:3)

我认为你的表现问题不是集会,而是你的对象创造。

使用Add-Member构建对象是V1构造,实际上是创建对象的最低效方法。每个Add-Member都会导致销毁原始对象并创建一个全新的对象。由于您使用V3标记了问题,因此这是创建对象的更好(更快)的方法:

$listA = *some list of 1000 items*
$listB = *other list*

$newList = New-Object System.Collections.ArrayList
foreach($a in $listA) {
    $b = get somevalue from list $listB
    $Object = [PSCustomObject]@{
    Name = $a
    Age = $b
    }
  $newList.Add($Object)

 }