Skip to content

Add generated parser benchmarks - #316

Merged
sebastienros merged 1 commit into
mainfrom
sebastienros-perf-generated-benchmarks
Jul 29, 2026
Merged

Add generated parser benchmarks#316
sebastienros merged 1 commit into
mainfrom
sebastienros-perf-generated-benchmarks

Conversation

@sebastienros

Copy link
Copy Markdown
Owner

The README benchmark data was stale and did not consistently cover Parlot's source-generated parsers. This adds generated parser variants and refreshes the published measurements on .NET 10.

Changes

  • Add source-generated JSON benchmarks for big, deep, long, and wide documents.
  • Include generated expression and JSON cases in the aggregate benchmark suite.
  • Cache and benchmark the generated email parser alongside Fluent and compiled variants.
  • Refresh README expression, JSON, and email results and update the documented dependency versions.
  • Correct the compilation guidance now that recent Fluent hot-path optimizations have narrowed the compiled-vs-Fluent gap.
  • Resolve implementation assemblies from reference-assembly paths and preserve the net10.0 Parlot assembly in BenchmarkDotNet's flattened output directory.

The assembly handling is necessary because BenchmarkDotNet redirects project outputs into one directory; without it, the generator can load reference assemblies during its nested build or the netstandard2.0 Parlot assembly can overwrite the net10.0 runtime assembly.

Validation

  • All 46 README benchmark cases completed on net10.0.
  • Source generator tests passed (248 tests).
  • Release benchmark project build succeeded.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 5a0f7186-1070-4633-81c9-56e79006ab9a
@sebastienros
sebastienros merged commit ae4f719 into main Jul 29, 2026
1 check passed
@sebastienros
sebastienros deleted the sebastienros-perf-generated-benchmarks branch July 29, 2026 23:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant