Benchmark.ps1
Import-Module .\Benchmark.psm1 -force Import-Module .\ConvertFrom-JsonFast.psm1 -force $jsonElement = (ConvertFrom-Json -Ashashtable -InputObject (Get-Content -raw -path (Join-Path $PSScriptRoot "element.json"))) $jsonArray = [System.Collections.Arraylist]::new() foreach ($i in 1..750000) { [void] ($jsonArray.add($jsonElement)) } $json = ConvertTo-Json $Jsonarray -depth 5 $Iterations = 1 write-host "Starting JSON Parsing Benchmark with a $($json.length / 1MB) MB file" write-host "" $Scenarios = @( @{ "Name" = "Do Nothing" "ScriptBlock" = { $Nothing = $i; $potato = $nothing } } @{ "Name" = "Built-in Cmdlet: Hashtable" "ScriptBlock" = { ConvertFrom-Json -Ashashtable $Json } } @{ "Name" = "Built-in Cmdlet: PSCustomObject" "ScriptBlock" = { ConvertFrom-Json $Json } } @{ "Name" = "CustomCmdlet: Hashtable" "ScriptBlock" = { ConvertFrom-JsonFast $Json } } ) Perform-Scenarios -Scenarios $Scenarios -Iterations 1 |