-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Milestone
Description
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
- Original PR: feat: modularize PerfDiff regression detection, update analyzer reporting, and clarify CI performance documentation #565
- Static analysis reports: Codacy, GitHub Checks, Meziantou Analyzer