measure_install.ps1
|
$searchQueries = 1..50 # Simulate 50 search terms $packagesPerQuery = 1..100 # Simulate 100 packages per query Write-Host "Benchmarking Install-WingetAll logic..." $sw = [System.Diagnostics.Stopwatch]::StartNew() $allPackages = @() foreach ($query in $searchQueries) { # Simulate finding packages $uniqueQueryPackages = $packagesPerQuery | ForEach-Object { [PSCustomObject]@{ Id = "Pkg.$query.$_"; Name = "Package $query $_" } } $allPackages += $uniqueQueryPackages } $sw.Stop() Write-Host "Inefficient (Array +=) took: $($sw.ElapsedMilliseconds) ms. Count: $($allPackages.Count)" $sw = [System.Diagnostics.Stopwatch]::StartNew() $allPackagesList = [System.Collections.Generic.List[Object]]::new() foreach ($query in $searchQueries) { # Simulate finding packages $uniqueQueryPackages = $packagesPerQuery | ForEach-Object { [PSCustomObject]@{ Id = "Pkg.$query.$_"; Name = "Package $query $_" } } $allPackagesList.AddRange($uniqueQueryPackages) } $sw.Stop() Write-Host "Optimized (List.AddRange) took: $($sw.ElapsedMilliseconds) ms. Count: $($allPackagesList.Count)" |