Skip to content

Average gcperfsim results#5233

Open
VincentBu wants to merge 3 commits into
dotnet:mainfrom
VincentBu:average-gcperfsim-results
Open

Average gcperfsim results#5233
VincentBu wants to merge 3 commits into
dotnet:mainfrom
VincentBu:average-gcperfsim-results

Conversation

@VincentBu
Copy link
Copy Markdown
Contributor

This PR aims at calculating average value of multiple gcperfsim tests results.

Copilot AI review requested due to automatic review settings June 2, 2026 05:42
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

This PR refactors the GC infrastructure benchmark tooling, consolidating the Run/CoreRunInfo types into a unified CoreRunInfo hierarchy, restructures the GCPerfSim analysis pipeline into separate analyze/present phases, and improves NaN handling in report output.

Changes:

  • Unifies configuration types around a new CoreRunInfoBase and marks many configuration properties as required.
  • Refactors GCPerfSimAnalyzeCommand into ExecuteAnalysis + Present, and rewrites the markdown generator to operate on grouped GCTraceMetricComparisonResults.
  • Removes per-scenario factory methods (CreateNormalServerCase, CreateHighMemoryCase, etc.) and consolidates suite creation through GetBaseGCPerfsimSuite.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 14 comments.

Show a summary per file
File Description
RunCommand.cs Flattens nested analysis results and adds NaN-safe percentage formatting.
CreateSuiteCommand.cs Renames base configuration builder, populates corerun dictionaries explicitly, removes scenario factory methods.
MicrobenchmarkCommand.cs Updates Run references to CoreRunInfo.
GCPerfSimCommand.cs Splits analysis from presentation; renames Iterations to iterations.
GCPerfSimAnalyzeCommand.cs Introduces separate ExecuteAnalysis and Present methods over the new comparison types.
Presentation/GCPerfSim/Markdown.cs Rewrites analyze-command markdown generation in terms of grouped comparison results.
Presentation/GCPerfSim/Json.cs Adds GenerateForAnalyzeCommand serialization helper.
Microbenchmarks.Configuration.cs Replaces Run with CoreRunInfo (with commented-out old class).
InputConfiguration.cs Marks fields required, switches dictionaries to CoreRunInfoBase.
GCPerfSimFunctional.Configuration.cs Marks fields required, removes unused usings.
GCPerfSim.Configuration.cs Adds nested CoreRunInfo, renames Iterationsiterations, marks fields required.
ConfigurationBase.cs Marks fields required, introduces CoreRunInfoBase.
Common.cs Removes old CoreRunInfo class.
Microbenchmark.CommandBuilder.cs Uses Path instead of corerun.
MicrobenchmarkResultComparison.cs Updates tuple generic args to CoreRunInfo.
MicrobenchmarkResult.cs Updates Parent type to CoreRunInfo.
GCTraceMetrics.cs Adds optional Parent CoreRunInfo property.
GCTraceMetricComparisonResults.cs New grouping/classification type for comparison results.
GCTraceMetricComparison.cs Adds full pipeline: trace file discovery, analysis, comparison, grouping.
Run.yaml Adds gcperfsim: 1 iteration entry.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

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.

2 participants