Skip to content

Add big validation bundle, enable cross version benchmarking#580

Merged
ewoutkramer merged 1 commit intodevelop-sdk6from
feature/benchmark-cross-version
Sep 18, 2025
Merged

Add big validation bundle, enable cross version benchmarking#580
ewoutkramer merged 1 commit intodevelop-sdk6from
feature/benchmark-cross-version

Conversation

@andrzejskowronski
Copy link
Copy Markdown
Contributor

Description

From benchmarking the SDK5 version and SDK6 version of validator, I saw around 5-10% improvement in run-time, but more importantly 20% reduction in memory usage.

Method Job Mean Error StdDev Ratio RatioSD Allocated Alloc Ratio
PerformanceLargeValidation 2.7.0 17.85 ms 0.348 ms 0.308 ms 1.00 0.02 33.78 MB 1.00
PerformanceLargeValidation 2.8.0-alpha-20250905.1 16.36 ms 0.297 ms 0.354 ms 0.92 0.02 27.53 MB 0.81

Related issues

Closes #505

@alexzautke alexzautke requested a review from Copilot September 16, 2025 15:10
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

This PR introduces a comprehensive cross-version benchmarking system for the FHIR validation SDK and replaces a smaller test resource with a large validation bundle to enable performance comparisons between SDK versions 2.7.0 and 2.8.0-alpha.

  • Simplified validator benchmarks and added cross-version configuration for comparing SDK versions
  • Created a large JSON test bundle with 80+ FHIR resources for more substantial performance testing
  • Added infrastructure for conditional compilation based on SDK version constants

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
ValidatorBenchmarks.cs Streamlined benchmark class with cross-version attributes and conditional compilation for different SDK versions
ValidationBundle.json New large test bundle containing 80+ diverse FHIR resources for performance testing
IsExternalInit.cs Compatibility shim for C# 9.0 init setters on older target frameworks
CrossVersionConfiguration.cs Custom BenchmarkDotNet configuration for cross-version package testing
Benchmarks.csproj Updated project file with conditional package references and simplified content includes

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

@ewoutkramer ewoutkramer merged commit 045bef4 into develop-sdk6 Sep 18, 2025
2 checks passed
@ewoutkramer ewoutkramer deleted the feature/benchmark-cross-version branch September 18, 2025 13:58
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.

3 participants