PowerShell は配列の扱いでスピードが変わるらしい

2020/04/18

PowerShell で配列の扱い方でスピードが変わるらしい
あまり細かいことは良いから、実感が欲しかったので下記コードでテスト

検証コード

+= を使った

Measure-Command {
    $hoge  = New-Object System.Collections.ArrayList
    foreach($i in 1..$max) {
        $hoge += ($i)
    }
}

Add を使った

Measure-Command {
    $hoge  = New-Object System.Collections.ArrayList
    foreach($i in 1..$max) {
        $hoge.Add($i)
    }
}

結果

+= を使った

回数 かかった時間(ミリ秒)
$max = 100 23.6538
$max = 1000 63.8938
$max = 10000 2882.8444
$max = 100000 336124.8685

Add を使った

回数 かかった時間(ミリ秒)
$max = 100 0.8989
$max = 1000 8.9539
$max = 10000 50.2974
$max = 100000 245.2522