Skip to content

Separate workflow title parsing from file-I/O benchmark costs - #71927

Merged
pelikhan merged 2 commits into
mainfrom
copilot/performance-fix-extract-workflow-name
Oct 25, 2026
Merged

pelikhan merged 2 commits into
mainfrom
copilot/performance-fix-extract-workflow-name

Conversation

Copilot AI commented Oct 25, 2026 •

Copy link
Copy Markdown
Contributor

ExtractWorkflowNameFromFile was reported 130.6% slower: 5,318 ns/op versus a historical median of 2,306 ns/op. Local profiling points to syscall overhead, with parsing alone taking ~68 ns versus ~5.3 µs for file extraction.

  • Benchmark isolation: Add BenchmarkFastParseTitleFromReader to daily performance monitoring, separating parsing cost from file I/O.
  • Measurement integrity: Validate the extracted title and errors in the existing file benchmark.
  • Regression coverage: Cover heading precedence, frontmatter, whitespace, oversized lines, read errors, and early termination.

Scope: Diagnostic coverage only; production behavior is unchanged, and the reported runtime slowdown remains unresolved.

Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix performance regression in ExtractWorkflowNameFromFile Oct 25, 2026
Copilot AI requested a review from pelikhan October 25, 2026 17:21
@pelikhan
pelikhan marked this pull request as ready for review October 25, 2026 17:30
Copilot AI max review requested due to automatic review settings October 25, 2026 17:30

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

The daily results collector rejects decimal timings, so the new benchmark is excluded from historical tracking and regression analysis.

1 open issue
What changed in this PR

This PR separates workflow-title parsing costs from file I/O in gh-aw’s performance diagnostics. Production behavior is unchanged, and the reported slowdown remains unresolved.

Changes:

  • Adds a parser-only benchmark to the performance target.
  • Validates file-benchmark results and adds parser regression tests.
File Description
pkg/​cli/​commands_utils_test.go Adds parser tests, an isolated benchmark, and file-benchmark validation.
Makefile Includes the parser-only benchmark in bench-performance.

Review effort: Max

Comment thread Makefile Resolved
@pelikhan
pelikhan merged commit d40880e into main Oct 25, 2026
50 checks passed
@pelikhan
pelikhan deleted the copilot/performance-fix-extract-workflow-name branch October 25, 2026 17:48
@github-actions

Copy link
Copy Markdown
Contributor

🎉 This pull request is included in a new release.

Release: v0.93.6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants