Skip to content

1.5.0 - Performance Improvements & more!

Choose a tag to compare

@floriankraemer floriankraemer released this 24 Sep 20:46
· 30 commits to master since this release
11597c3

What's Changed

🐛 Bug Fixes

  • Fix analysis breaking for anonymous classes by @floriankraemer in #44
    • Improved error handling for anonymous classes during AST parsing
    • Added comprehensive test coverage for anonymous class scenarios

🎨 User Experience Improvements

  • Hide cognitive metric details in console output by @floriankraemer in #43
    • Added showDetailedCognitiveMetrics configuration option to control detailed metric display
    • Improved console output readability by making detailed metrics optional

⚡ Performance Enhancements

  • Significantly increase analysis performance by @floriankraemer in #46
    • Introduced CombinedMetricsVisitor to process all metrics in a single AST traversal
    • Eliminated multiple AST parsing passes, reducing analysis time substantially
    • Optimized visitor pattern implementation across all metric collectors

🧪 Testing & Quality Assurance

  • Add comprehensive approval tests for console output by @floriankraemer in #47

    • Implemented approval testing framework to detect unintended changes in console output
    • Added test fixtures for various configuration scenarios
    • Improved file collection and sorting consistency across platforms
  • Add PHPBench performance benchmarking by @floriankraemer in #45

    • Integrated PHPBench for continuous performance monitoring
    • Added comprehensive benchmarks for different code complexity scenarios
    • Established baseline performance metrics for future optimization

🔧 Code Quality & Refactoring

  • Refactor cognitive metrics handling and parser architecture
    • Simplified cyclomatic complexity instantiation and data handling
    • Enhanced type safety with improved type hints
    • Removed unused methods and improved code maintainability
    • Better separation of concerns in metrics collection

Full Changelog: 1.4.0...1.5.0


Key Highlights

  • Major performance improvement through single-pass AST traversal
  • Enhanced configurability with new output display options
  • Robust testing with approval tests and performance benchmarks
  • Better error handling for edge cases like anonymous classes
  • Improved code quality through refactoring and type safety enhancements

This release represents a significant step forward in both performance and reliability, making the tool more efficient and easier to configure for different use cases.