param( [string]$OutputPath, [double]$SampleSize = 10, [double]$MeasurementSeconds = 0.05, [double]$WarmupSeconds = 0.05, [int]$TransferBytes = 8388608, [switch]$SkipBenchExecution ) $ErrorActionPreference = "Stop" Set-StrictMode -Version Latest $repoRoot = Split-Path -Parent (Split-Path -Parent $PSScriptRoot) $OutputPath = if ([string]::IsNullOrWhiteSpace($OutputPath)) { Join-Path $repoRoot "docs\perf\local-comparison.md" } else { $OutputPath } $xtaskManifest = Join-Path $repoRoot "xtask\Cargo.toml" $arguments = @( "cargo", "run", "--manifest-path", $xtaskManifest, "--", "perf", "collect-local-comparison", "--output-path", $OutputPath, "--sample-size", "$SampleSize", "--measurement-seconds", "$MeasurementSeconds", "--warmup-seconds", "$WarmupSeconds", "--transfer-bytes", "$TransferBytes" ) if ($SkipBenchExecution) { $arguments += "--skip-bench-execution" } rtk @arguments