小编BDu*_*ubs的帖子

在PowerShell中处理大型阵列

我很难理解在PowerShell中处理大型数据集/数组的最有效方法。我的阵列中有数百万个项目需要处理和分组。此列表的大小始终不同,这意味着可以是350万个或1000万个项目。

示例:将350万个项目按“ 4”分组,如下所示:

项目0、1、2、3组合在一起4,5,6,7组合在一起,依此类推。

我尝试通过遍历列表并分配给pscustomobject来使用单线程处理数组,而该工作仅需要45-50分钟即可完成。

我还尝试将数组拆分为较小的数组,但这会使进程运行更长的时间。

$i=0
$d_array = @()
$item_array # Large dataset


While ($i -lt $item_array.length){

    $o = "Test"
    $oo = "Test"
    $n = $item_array[$i];$i++
    $id = $item_array[$i];$i++
    $ir = $item_array[$i];$i++
    $cs = $item_array[$i];$i++

    $items = [PSCustomObject]@{
        'field1' = $o
        'field2' = $oo
        'field3' = $n
        'field4' = $id
        'field5' = $ir
        'field6'= $cs
    }
    $d_array += $items

}
Run Code Online (Sandbox Code Playgroud)

我想像一下,如果我使用一个作业调度程序,使我可以运行多个作业,将大大减少处理时间,但是我想让其他人采取快速有效的方法来解决这一问题。

arrays powershell powershell-jobs

7
推荐指数
1
解决办法
201
查看次数

标签 统计

arrays ×1

powershell ×1

powershell-jobs ×1