Skip to content

PerfDiff: Address static analysis warnings and code standards violations #611

@coderabbitai

Description

@coderabbitai

Description

Multiple static analysis warnings and code standards violations identified across PerfDiff files that need to be addressed.

Issues Identified from PR #565

Assembly Version Attributes Missing

  • Multiple files missing AssemblyVersion attribute warnings
  • Affects: All new DataContracts, Regression strategies, and core classes

Magic Numbers

  • 1000000 hardcoded in PercentileRegressionStrategy.cs:21 (nanoseconds to milliseconds conversion)
  • 0.1 hardcoded in RegressionStrategyHelper.cs:71

Collection Abstraction Issues

  • Statistics.cs: Lines 61, 66, 71 use concrete IList<double> instead of abstractions
  • Meziantou analyzer rule MA0016 violations

API Naming Issues

  • Methods with Async suffix that don't follow conventions:
    • BenchmarkComparisonService.CompareAsync
    • PerfDiff.CompareAsync
    • BenchmarkDotNetDiffer.TryCompareBenchmarkDotNetResultsAsync

Affected Files

  • src/tools/PerfDiff/BDN/DataContracts/Statistics.cs
  • src/tools/PerfDiff/BDN/Regression/PercentileRegressionStrategy.cs
  • src/tools/PerfDiff/BDN/Regression/RegressionStrategyHelper.cs
  • src/tools/PerfDiff/BDN/BenchmarkComparisonService.cs
  • src/tools/PerfDiff/PerfDiff.cs
  • Multiple DataContract files

Suggested Solutions

  • Add AssemblyInfo.cs with proper version attributes
  • Extract magic numbers to named constants
  • Use appropriate collection abstractions (IReadOnlyList, ICollection)
  • Review and fix async method naming conventions

Reference

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions