Skip to content

Performance Monitoring Enhancement: runtime metrics, memory profiling, regression detection, and dashboard#234

Draft
Copilot wants to merge 5 commits intomasterfrom
copilot/enhance-performance-monitoring
Draft

Performance Monitoring Enhancement: runtime metrics, memory profiling, regression detection, and dashboard#234
Copilot wants to merge 5 commits intomasterfrom
copilot/enhance-performance-monitoring

Conversation

Copy link
Contributor

Copilot AI commented Feb 19, 2026

  • Create RuntimeMetricsCollector in ACATCore/Utility/Metrics/ (Runtime Metrics Collection #198)
  • Create MemoryProfiler in ACATCore/Utility/Diagnostics/ (Memory Profiling Integration #199)
  • Create PerformanceBaseline and PerformanceRegressionDetector in ACATCore/Utility/Diagnostics/ (Performance Regression Detection #200)
  • Create PerformanceDashboard WPF window in ACAT.Extensions.UI/Diagnostics/ (Performance Dashboard #201)
  • Update PerformanceMonitor.cs to integrate new components
  • Add ACATCore.Tests.Performance test project with tests for new components
  • Update CI workflow (build.yml, test.yml) to run new performance tests
  • Update ACAT.Core.csproj and ACAT.Extensions.UI.csproj to include new files
  • Add ACATCore.Tests.Performance to ACAT.sln
  • Fix spelling in doc comments (code review feedback)
  • Fix build error: JsonSerializer.Serialize/Deserialize shadowed by ACAT.Core.Utility.JsonSerializer
  • Add usage documentation to PerformanceDashboard.xaml (XAML comment block) and PerformanceDashboard.xaml.cs (XML doc with code examples)
Original prompt

This section details on the original issue you should resolve

<issue_title>Performance Monitoring Enhancement</issue_title>
<issue_description>Expand performance monitoring capabilities beyond startup metrics.

Key Deliverables:

  • Runtime performance metrics
  • Memory profiling integration
  • Performance regression detection
  • Dashboard and reporting

Benefits:

  • Proactive performance issues
  • Track improvements
  • Prevent regressions
  • Better diagnostics

🔗 Dependencies

  • Depends on: Phase 1 Complete ΓÅ│ (not yet created)

Epic: Phase 2 - Core Infrastructure Modernization

Estimated Effort: 1-2 weeks


📋 Tasks

</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI and others added 2 commits February 20, 2026 00:07
…ling, regression detection, and dashboard

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Copilot AI changed the title [WIP] Expand performance monitoring capabilities beyond startup metrics Performance Monitoring Enhancement: runtime metrics, memory profiling, regression detection, and dashboard Feb 20, 2026
@michaelbeale-IL
Copy link
Contributor

@copilot I think there are build errors. can you check it out?

…to avoid shadowing by ACAT.Core.Utility.JsonSerializer

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Feb 20, 2026

@copilot I think there are build errors. can you check it out?

Fixed in commit 4bb4b61.

The build errors were in PerformanceBaseline.cs:

error CS1501: No overload for method 'Serialize' takes 2 arguments
error CS1501: No overload for method 'Deserialize' takes 2 arguments

The root cause: PerformanceBaseline.cs lives in the ACAT.Core.Utility.Diagnostics namespace, which is a child of ACAT.Core.Utility. C# resolves unqualified names in parent namespaces before using directives, so JsonSerializer resolved to the custom ACAT.Core.Utility.JsonSerializer class (which only takes 1 argument) instead of System.Text.Json.JsonSerializer.

The fix follows the same pattern used in the existing JsonConfigurationLoader.cs — use the fully qualified System.Text.Json.JsonSerializer.Serialize(...) and System.Text.Json.JsonSerializer.Deserialize<T>(...) to avoid the ambiguity.

Copy link
Contributor

Choose a reason for hiding this comment

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

@copilot can you document how this should be used?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done in commit 49c954f. Added documentation in two places:

  1. PerformanceDashboard.xaml — a prominent comment block at the top of the file with a full usage guide covering quick start, shared collectors, custom baselines, export options, and a description of each panel.

  2. PerformanceDashboard.xaml.cs — expanded XML doc <remarks> on the class with <code> examples for all three usage patterns:

// Minimal — self-contained
var dashboard = new PerformanceDashboard();
dashboard.Show();

// Shared collectors (show data already gathered by the app)
var dashboard = new PerformanceDashboard(collector, profiler);
dashboard.Show();

// Custom regression thresholds
PerformanceBaselineData baseline = PerformanceBaseline.Load(baselinePath);
var dashboard = new PerformanceDashboard(collector, profiler, baseline);
dashboard.Show();

Co-authored-by: michaelbeale-IL <63321611+michaelbeale-IL@users.noreply.github.com>
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.

Performance Monitoring Enhancement

2 participants

Comments