From 126675f9a563799187c60aa045bc829ea3ee1b02 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:09:30 +0000 Subject: [PATCH 1/6] Initial plan From 9dab5c26bb713a061f42c70d3e05aa70f9d765de Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:11:23 +0000 Subject: [PATCH 2/6] Add performance comparison workflow for all three witr implementations Co-authored-by: supervoidcoder <88671013+supervoidcoder@users.noreply.github.com> --- .github/workflows/perf-compare.yml | 231 +++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 .github/workflows/perf-compare.yml diff --git a/.github/workflows/perf-compare.yml b/.github/workflows/perf-compare.yml new file mode 100644 index 0000000..6140b09 --- /dev/null +++ b/.github/workflows/perf-compare.yml @@ -0,0 +1,231 @@ +name: Performance Comparison + +on: + workflow_dispatch: + push: + paths: + - 'main.cpp' + - '.github/workflows/perf-compare.yml' + pull_request: + paths: + - 'main.cpp' + - '.github/workflows/perf-compare.yml' + +permissions: + contents: read + +jobs: + perf-comparison: + runs-on: windows-latest + steps: + - name: Checkout this repo + uses: actions/checkout@v4 + with: + path: win-witr-cpp + + # Install pranshuparmar's witr (Go version) + - name: Setup Go + uses: actions/setup-go@v5 + with: + go-version: 'stable' + + - name: Clone and build pranshuparmar's witr + shell: pwsh + run: | + git clone https://github.com/pranshuparmar/witr.git witr-go + cd witr-go + go build -o witr.exe + Write-Host "Built pranshuparmar's witr (Go version)" + .\witr.exe --version + + # Install m-de-graaff's witr-win (Rust version) + - name: Setup Rust + uses: dtolnay/rust-toolchain@stable + + - name: Clone and build m-de-graaff's witr-win + shell: pwsh + run: | + git clone https://github.com/m-de-graaff/witr-win.git witr-rust + cd witr-rust + cargo build --release + Copy-Item "target/release/witr.exe" "witr-rust.exe" + Write-Host "Built m-de-graaff's witr-win (Rust version)" + .\witr-rust.exe --version + + # Build this repo's win-witr (C++ version) + - name: Setup MSVC + uses: ilammy/msvc-dev-cmd@v1 + + - name: Compile win-witr + shell: pwsh + run: | + cd win-witr-cpp + cl /O2 /GL /std:c++20 /EHsc main.cpp /DUNICODE /D_UNICODE /Fe:win-witr.exe + Write-Host "Built win-witr (C++ version)" + .\win-witr.exe --version + + # Run performance comparison tests + - name: Run Performance Comparison + shell: pwsh + run: | + Write-Host "" + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "WITR PERFORMANCE COMPARISON" -ForegroundColor Cyan + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "" + + # Add all executables to variables for easy access + $witrGo = "$PWD\witr-go\witr.exe" + $witrRust = "$PWD\witr-rust.exe" + $witrCpp = "$PWD\win-witr-cpp\win-witr.exe" + + # Test processes - use common Windows processes that should exist + $testProcesses = @( + "explorer", + "winlogon", + "lsass", + "csrss", + "services", + "svchost" + ) + + Write-Host "Testing process lookup performance on $($testProcesses.Count) processes" -ForegroundColor Yellow + Write-Host "" + + # Results storage + $results = @{ + "Go" = @() + "Rust" = @() + "C++" = @() + } + + # Run tests for each process + foreach ($process in $testProcesses) { + Write-Host "Testing: $process" -ForegroundColor White + Write-Host "----------------------------------------" -ForegroundColor Gray + + # Test Go version + Write-Host " Go version:" -ForegroundColor Green -NoNewline + $goTime = Measure-Command { & $witrGo $process 2>&1 | Out-Null } + $goMs = [Math]::Round($goTime.TotalMilliseconds, 2) + Write-Host " $goMs ms" -ForegroundColor Cyan + $results["Go"] += $goMs + + # Test Rust version + Write-Host " Rust version:" -ForegroundColor Green -NoNewline + $rustTime = Measure-Command { & $witrRust $process 2>&1 | Out-Null } + $rustMs = [Math]::Round($rustTime.TotalMilliseconds, 2) + Write-Host " $rustMs ms" -ForegroundColor Cyan + $results["Rust"] += $rustMs + + # Test C++ version + Write-Host " C++ version:" -ForegroundColor Green -NoNewline + $cppTime = Measure-Command { & $witrCpp $process 2>&1 | Out-Null } + $cppMs = [Math]::Round($cppTime.TotalMilliseconds, 2) + Write-Host " $cppMs ms" -ForegroundColor Cyan + $results["C++"] += $cppMs + + Write-Host "" + } + + # Calculate and display totals + Write-Host "" + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "TOTAL RESULTS" -ForegroundColor Cyan + Write-Host "=====================================" -ForegroundColor Cyan + + $goTotal = ($results["Go"] | Measure-Object -Sum).Sum + $rustTotal = ($results["Rust"] | Measure-Object -Sum).Sum + $cppTotal = ($results["C++"] | Measure-Object -Sum).Sum + + Write-Host "" + Write-Host "Total time for $($testProcesses.Count) process lookups:" -ForegroundColor Yellow + Write-Host " Go (pranshuparmar/witr): $([Math]::Round($goTotal, 2)) ms" -ForegroundColor Green + Write-Host " Rust (m-de-graaff/witr-win): $([Math]::Round($rustTotal, 2)) ms" -ForegroundColor Green + Write-Host " C++ (supervoidcoder/win-witr): $([Math]::Round($cppTotal, 2)) ms" -ForegroundColor Green + Write-Host "" + + # Calculate averages + $goAvg = [Math]::Round($goTotal / $testProcesses.Count, 2) + $rustAvg = [Math]::Round($rustTotal / $testProcesses.Count, 2) + $cppAvg = [Math]::Round($cppTotal / $testProcesses.Count, 2) + + Write-Host "Average time per lookup:" -ForegroundColor Yellow + Write-Host " Go: $goAvg ms" -ForegroundColor Green + Write-Host " Rust: $rustAvg ms" -ForegroundColor Green + Write-Host " C++: $cppAvg ms" -ForegroundColor Green + Write-Host "" + + # Determine winner + $times = @{ + "Go (pranshuparmar/witr)" = $goTotal + "Rust (m-de-graaff/witr-win)" = $rustTotal + "C++ (supervoidcoder/win-witr)" = $cppTotal + } + + $winner = $times.GetEnumerator() | Sort-Object Value | Select-Object -First 1 + $slowest = $times.GetEnumerator() | Sort-Object Value -Descending | Select-Object -First 1 + + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "🏆 FASTEST: $($winner.Name)" -ForegroundColor Green + Write-Host "🐌 SLOWEST: $($slowest.Name)" -ForegroundColor Red + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "" + + # Calculate speed differences + $cppVsGo = [Math]::Round((($goTotal - $cppTotal) / $goTotal) * 100, 1) + $cppVsRust = [Math]::Round((($rustTotal - $cppTotal) / $rustTotal) * 100, 1) + + Write-Host "Performance comparison:" -ForegroundColor Yellow + if ($cppVsGo -gt 0) { + Write-Host " C++ is $cppVsGo% faster than Go" -ForegroundColor Green + } elseif ($cppVsGo -lt 0) { + Write-Host " C++ is $([Math]::Abs($cppVsGo))% slower than Go" -ForegroundColor Red + } else { + Write-Host " C++ and Go have equal performance" -ForegroundColor Yellow + } + + if ($cppVsRust -gt 0) { + Write-Host " C++ is $cppVsRust% faster than Rust" -ForegroundColor Green + } elseif ($cppVsRust -lt 0) { + Write-Host " C++ is $([Math]::Abs($cppVsRust))% slower than Rust" -ForegroundColor Red + } else { + Write-Host " C++ and Rust have equal performance" -ForegroundColor Yellow + } + Write-Host "" + + # Also test --version and --help commands for completeness + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "COMMAND PERFORMANCE TESTS" -ForegroundColor Cyan + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "" + + # Test --version + Write-Host "Testing --version command:" -ForegroundColor Yellow + + $goVersionTime = Measure-Command { & $witrGo --version | Out-Null } + Write-Host " Go: $([Math]::Round($goVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + + $rustVersionTime = Measure-Command { & $witrRust --version | Out-Null } + Write-Host " Rust: $([Math]::Round($rustVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + + $cppVersionTime = Measure-Command { & $witrCpp --version | Out-Null } + Write-Host " C++: $([Math]::Round($cppVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + Write-Host "" + + # Test --help + Write-Host "Testing --help command:" -ForegroundColor Yellow + + $goHelpTime = Measure-Command { & $witrGo --help | Out-Null } + Write-Host " Go: $([Math]::Round($goHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + + $rustHelpTime = Measure-Command { & $witrRust --help | Out-Null } + Write-Host " Rust: $([Math]::Round($rustHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + + $cppHelpTime = Measure-Command { & $witrCpp --help | Out-Null } + Write-Host " C++: $([Math]::Round($cppHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + Write-Host "" + + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "Performance comparison complete!" -ForegroundColor Cyan + Write-Host "=====================================" -ForegroundColor Cyan From f37f7e0fc2adef2693ce86cfa832deaa02145a30 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:12:04 +0000 Subject: [PATCH 3/6] Add sample output comparison and error handling to performance workflow Co-authored-by: supervoidcoder <88671013+supervoidcoder@users.noreply.github.com> --- .github/workflows/perf-compare.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/.github/workflows/perf-compare.yml b/.github/workflows/perf-compare.yml index 6140b09..ec63b4e 100644 --- a/.github/workflows/perf-compare.yml +++ b/.github/workflows/perf-compare.yml @@ -32,9 +32,11 @@ jobs: - name: Clone and build pranshuparmar's witr shell: pwsh run: | + $ErrorActionPreference = "Stop" git clone https://github.com/pranshuparmar/witr.git witr-go cd witr-go go build -o witr.exe + if ($LASTEXITCODE -ne 0) { exit 1 } Write-Host "Built pranshuparmar's witr (Go version)" .\witr.exe --version @@ -45,9 +47,11 @@ jobs: - name: Clone and build m-de-graaff's witr-win shell: pwsh run: | + $ErrorActionPreference = "Stop" git clone https://github.com/m-de-graaff/witr-win.git witr-rust cd witr-rust cargo build --release + if ($LASTEXITCODE -ne 0) { exit 1 } Copy-Item "target/release/witr.exe" "witr-rust.exe" Write-Host "Built m-de-graaff's witr-win (Rust version)" .\witr-rust.exe --version @@ -59,8 +63,10 @@ jobs: - name: Compile win-witr shell: pwsh run: | + $ErrorActionPreference = "Stop" cd win-witr-cpp cl /O2 /GL /std:c++20 /EHsc main.cpp /DUNICODE /D_UNICODE /Fe:win-witr.exe + if ($LASTEXITCODE -ne 0) { exit 1 } Write-Host "Built win-witr (C++ version)" .\win-witr.exe --version @@ -92,6 +98,25 @@ jobs: Write-Host "Testing process lookup performance on $($testProcesses.Count) processes" -ForegroundColor Yellow Write-Host "" + # First, show sample output from each tool for explorer process + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "SAMPLE OUTPUT COMPARISON (explorer)" -ForegroundColor Cyan + Write-Host "=====================================" -ForegroundColor Cyan + Write-Host "" + + Write-Host "--- Go version output ---" -ForegroundColor Green + & $witrGo explorer + Write-Host "" + + Write-Host "--- Rust version output ---" -ForegroundColor Green + & $witrRust explorer + Write-Host "" + + Write-Host "--- C++ version output ---" -ForegroundColor Green + & $witrCpp explorer + Write-Host "" + Write-Host "" + # Results storage $results = @{ "Go" = @() From 99e366e04ba272607e15ce64ae143d4f4087b82b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:13:14 +0000 Subject: [PATCH 4/6] Add clarifying comment about stable Rust toolchain usage Co-authored-by: supervoidcoder <88671013+supervoidcoder@users.noreply.github.com> --- .github/workflows/perf-compare.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/perf-compare.yml b/.github/workflows/perf-compare.yml index ec63b4e..c9d8cfb 100644 --- a/.github/workflows/perf-compare.yml +++ b/.github/workflows/perf-compare.yml @@ -43,6 +43,7 @@ jobs: # Install m-de-graaff's witr-win (Rust version) - name: Setup Rust uses: dtolnay/rust-toolchain@stable + # Note: Using @stable intentionally to test against latest Rust version - name: Clone and build m-de-graaff's witr-win shell: pwsh From d4c43b62538b3930878666588a20ec0d07f78dbd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:36:50 +0000 Subject: [PATCH 5/6] Fix Rust witr-win build issues - handle build failures gracefully Co-authored-by: supervoidcoder <88671013+supervoidcoder@users.noreply.github.com> --- .github/workflows/perf-compare.yml | 100 ++++++++++++++++++++--------- 1 file changed, 68 insertions(+), 32 deletions(-) diff --git a/.github/workflows/perf-compare.yml b/.github/workflows/perf-compare.yml index c9d8cfb..e297524 100644 --- a/.github/workflows/perf-compare.yml +++ b/.github/workflows/perf-compare.yml @@ -46,16 +46,27 @@ jobs: # Note: Using @stable intentionally to test against latest Rust version - name: Clone and build m-de-graaff's witr-win + continue-on-error: true + id: rust_build shell: pwsh run: | - $ErrorActionPreference = "Stop" + $ErrorActionPreference = "Continue" git clone https://github.com/m-de-graaff/witr-win.git witr-rust cd witr-rust - cargo build --release - if ($LASTEXITCODE -ne 0) { exit 1 } - Copy-Item "target/release/witr.exe" "witr-rust.exe" - Write-Host "Built m-de-graaff's witr-win (Rust version)" - .\witr-rust.exe --version + cargo build --release 2>&1 | Out-Host + if ($LASTEXITCODE -ne 0) { + Write-Warning "Rust version failed to build - will be skipped in comparison" + exit 1 + } + # The binary name is witr-win.exe, not witr.exe + if (Test-Path "target/release/witr-win.exe") { + Copy-Item "target/release/witr-win.exe" "../witr-rust.exe" + Write-Host "Built m-de-graaff's witr-win (Rust version)" + ..\witr-rust.exe --version + } else { + Write-Warning "Rust binary not found - build may have failed" + exit 1 + } # Build this repo's win-witr (C++ version) - name: Setup MSVC @@ -86,6 +97,13 @@ jobs: $witrRust = "$PWD\witr-rust.exe" $witrCpp = "$PWD\win-witr-cpp\win-witr.exe" + # Check which versions are available + $hasRust = Test-Path $witrRust + if (-not $hasRust) { + Write-Warning "Rust version not available - it failed to build. Comparison will only include Go and C++ versions." + Write-Host "" + } + # Test processes - use common Windows processes that should exist $testProcesses = @( "explorer", @@ -109,9 +127,11 @@ jobs: & $witrGo explorer Write-Host "" - Write-Host "--- Rust version output ---" -ForegroundColor Green - & $witrRust explorer - Write-Host "" + if ($hasRust) { + Write-Host "--- Rust version output ---" -ForegroundColor Green + & $witrRust explorer + Write-Host "" + } Write-Host "--- C++ version output ---" -ForegroundColor Green & $witrCpp explorer @@ -137,12 +157,14 @@ jobs: Write-Host " $goMs ms" -ForegroundColor Cyan $results["Go"] += $goMs - # Test Rust version - Write-Host " Rust version:" -ForegroundColor Green -NoNewline - $rustTime = Measure-Command { & $witrRust $process 2>&1 | Out-Null } - $rustMs = [Math]::Round($rustTime.TotalMilliseconds, 2) - Write-Host " $rustMs ms" -ForegroundColor Cyan - $results["Rust"] += $rustMs + # Test Rust version (if available) + if ($hasRust) { + Write-Host " Rust version:" -ForegroundColor Green -NoNewline + $rustTime = Measure-Command { & $witrRust $process 2>&1 | Out-Null } + $rustMs = [Math]::Round($rustTime.TotalMilliseconds, 2) + Write-Host " $rustMs ms" -ForegroundColor Cyan + $results["Rust"] += $rustMs + } # Test C++ version Write-Host " C++ version:" -ForegroundColor Green -NoNewline @@ -161,33 +183,41 @@ jobs: Write-Host "=====================================" -ForegroundColor Cyan $goTotal = ($results["Go"] | Measure-Object -Sum).Sum - $rustTotal = ($results["Rust"] | Measure-Object -Sum).Sum + $rustTotal = if ($hasRust) { ($results["Rust"] | Measure-Object -Sum).Sum } else { 0 } $cppTotal = ($results["C++"] | Measure-Object -Sum).Sum Write-Host "" Write-Host "Total time for $($testProcesses.Count) process lookups:" -ForegroundColor Yellow - Write-Host " Go (pranshuparmar/witr): $([Math]::Round($goTotal, 2)) ms" -ForegroundColor Green - Write-Host " Rust (m-de-graaff/witr-win): $([Math]::Round($rustTotal, 2)) ms" -ForegroundColor Green + Write-Host " Go (pranshuparmar/witr): $([Math]::Round($goTotal, 2)) ms" -ForegroundColor Green + if ($hasRust) { + Write-Host " Rust (m-de-graaff/witr-win): $([Math]::Round($rustTotal, 2)) ms" -ForegroundColor Green + } else { + Write-Host " Rust (m-de-graaff/witr-win): N/A (build failed)" -ForegroundColor Yellow + } Write-Host " C++ (supervoidcoder/win-witr): $([Math]::Round($cppTotal, 2)) ms" -ForegroundColor Green Write-Host "" # Calculate averages $goAvg = [Math]::Round($goTotal / $testProcesses.Count, 2) - $rustAvg = [Math]::Round($rustTotal / $testProcesses.Count, 2) + $rustAvg = if ($hasRust) { [Math]::Round($rustTotal / $testProcesses.Count, 2) } else { 0 } $cppAvg = [Math]::Round($cppTotal / $testProcesses.Count, 2) Write-Host "Average time per lookup:" -ForegroundColor Yellow Write-Host " Go: $goAvg ms" -ForegroundColor Green - Write-Host " Rust: $rustAvg ms" -ForegroundColor Green + if ($hasRust) { + Write-Host " Rust: $rustAvg ms" -ForegroundColor Green + } Write-Host " C++: $cppAvg ms" -ForegroundColor Green Write-Host "" # Determine winner $times = @{ "Go (pranshuparmar/witr)" = $goTotal - "Rust (m-de-graaff/witr-win)" = $rustTotal "C++ (supervoidcoder/win-witr)" = $cppTotal } + if ($hasRust) { + $times["Rust (m-de-graaff/witr-win)"] = $rustTotal + } $winner = $times.GetEnumerator() | Sort-Object Value | Select-Object -First 1 $slowest = $times.GetEnumerator() | Sort-Object Value -Descending | Select-Object -First 1 @@ -200,7 +230,6 @@ jobs: # Calculate speed differences $cppVsGo = [Math]::Round((($goTotal - $cppTotal) / $goTotal) * 100, 1) - $cppVsRust = [Math]::Round((($rustTotal - $cppTotal) / $rustTotal) * 100, 1) Write-Host "Performance comparison:" -ForegroundColor Yellow if ($cppVsGo -gt 0) { @@ -211,12 +240,15 @@ jobs: Write-Host " C++ and Go have equal performance" -ForegroundColor Yellow } - if ($cppVsRust -gt 0) { - Write-Host " C++ is $cppVsRust% faster than Rust" -ForegroundColor Green - } elseif ($cppVsRust -lt 0) { - Write-Host " C++ is $([Math]::Abs($cppVsRust))% slower than Rust" -ForegroundColor Red - } else { - Write-Host " C++ and Rust have equal performance" -ForegroundColor Yellow + if ($hasRust) { + $cppVsRust = [Math]::Round((($rustTotal - $cppTotal) / $rustTotal) * 100, 1) + if ($cppVsRust -gt 0) { + Write-Host " C++ is $cppVsRust% faster than Rust" -ForegroundColor Green + } elseif ($cppVsRust -lt 0) { + Write-Host " C++ is $([Math]::Abs($cppVsRust))% slower than Rust" -ForegroundColor Red + } else { + Write-Host " C++ and Rust have equal performance" -ForegroundColor Yellow + } } Write-Host "" @@ -232,8 +264,10 @@ jobs: $goVersionTime = Measure-Command { & $witrGo --version | Out-Null } Write-Host " Go: $([Math]::Round($goVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green - $rustVersionTime = Measure-Command { & $witrRust --version | Out-Null } - Write-Host " Rust: $([Math]::Round($rustVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + if ($hasRust) { + $rustVersionTime = Measure-Command { & $witrRust --version | Out-Null } + Write-Host " Rust: $([Math]::Round($rustVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + } $cppVersionTime = Measure-Command { & $witrCpp --version | Out-Null } Write-Host " C++: $([Math]::Round($cppVersionTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green @@ -245,8 +279,10 @@ jobs: $goHelpTime = Measure-Command { & $witrGo --help | Out-Null } Write-Host " Go: $([Math]::Round($goHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green - $rustHelpTime = Measure-Command { & $witrRust --help | Out-Null } - Write-Host " Rust: $([Math]::Round($rustHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + if ($hasRust) { + $rustHelpTime = Measure-Command { & $witrRust --help | Out-Null } + Write-Host " Rust: $([Math]::Round($rustHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green + } $cppHelpTime = Measure-Command { & $witrCpp --help | Out-Null } Write-Host " C++: $([Math]::Round($cppHelpTime.TotalMilliseconds, 2)) ms" -ForegroundColor Green From e8c69a0932d5378293790cada4ce25b99b9b24bd Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 11 Feb 2026 15:47:18 +0000 Subject: [PATCH 6/6] Enable ANSI colors for win-witr output in performance comparison Co-authored-by: supervoidcoder <88671013+supervoidcoder@users.noreply.github.com> --- .github/workflows/perf-compare.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/perf-compare.yml b/.github/workflows/perf-compare.yml index e297524..922f66a 100644 --- a/.github/workflows/perf-compare.yml +++ b/.github/workflows/perf-compare.yml @@ -86,6 +86,9 @@ jobs: - name: Run Performance Comparison shell: pwsh run: | + # Enable ANSI colors for win-witr C++ output + $env:force_ansi = 1 + Write-Host "" Write-Host "=====================================" -ForegroundColor Cyan Write-Host "WITR PERFORMANCE COMPARISON" -ForegroundColor Cyan