Skip to content

Add a controlled .NET 10 and .NET 11 runtime comparison - #5385

Draft
arturcic wants to merge 2 commits into
GitTools:mainfrom
arturcic:codex/runtime-performance-comparison
Draft

arturcic wants to merge 2 commits into
GitTools:mainfrom
arturcic:codex/runtime-performance-comparison

Conversation

@arturcic

@arturcic arturcic commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

Purpose

Add a bounded, informational Linux runtime comparison for #5210. The same net10 publish runs on exact .NET 10 and .NET 11 runtimes; a net11 publish adds the framework/build comparison. Both Git backends run against reproducible 100- and 5,000-commit packed fixtures, with GitVersion cache bypass and warmed-cache cases.

The harness verifies CoreCLR selection from untimed host traces and requires identical version JSON across every case. It records raw elapsed/CPU/peak-RSS samples, distributions, source/SDK/runtime/CPU metadata and a workflow summary. Child processes use a minimal environment to isolate fixture calculations from CI branch and GitVersion overrides. The workflow runs manually or when a PR changes the harness; it adds no timing gate or benchmark dependency.

Validation

  • Published net10 and net11 from the same source using SDK 11.0.100-rc.2.26504.105 in an isolated Linux arm64 container.
  • Runtime 10.0.13 and 11.0.0-rc.2.26504.105: 48 samples passed for small smoke fixtures, another 48 with conflicting inherited CI/branch/backend variables, and 48 with the default 100/5,000-commit sizes (two repetitions for validation).
  • All runs verified runtime selection and full version-output parity. Confirmed the warmed fixture loads its disk cache.
  • Checked invalid repetition counts and refusal to reuse an existing output directory.
  • Node syntax, actionlint and diff whitespace checks passed.
  • CodeRabbit: fixed inherited CI environment leakage and preservation of mismatching JSON artifacts. The final incremental review reported no findings. Dismissed its unsupported-net11-SDK finding because the pinned RC2 SDK successfully published both frameworks during validation.

These local runs validate the harness only. Hosted Linux amd64 measurements use 15 repetitions per case; no performance improvement is claimed. Direct process startup is included; SDK tool dispatch, allocations/GC, cold OS caches, other platforms and complex histories remain outside this first experiment. RC2 results need repetition at GA before drawing final conclusions.

Related: #5210. Independent of #5383 and arturcic#1027; based on main.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
D Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

This branch has not been deployed

No deployments
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