Module realtime_performance_monitor

Module realtime_performance_monitor 

Source
Expand description

Real-Time Performance Monitoring and Adaptation for Advanced Processors

This module provides comprehensive real-time monitoring and adaptive optimization for all Advanced mode processors, including quantum-inspired, neural-adaptive, and hybrid processors.

§Architecture

The real-time performance monitoring system consists of several interconnected components:

  • Configuration: Flexible configuration system for different monitoring scenarios
  • Metrics Collection: Comprehensive performance metrics from various processor types
  • History Management: Efficient storage and analysis of performance history data
  • Alert System: Rule-based alerting with multiple notification channels
  • Real-Time Monitoring: Continuous monitoring with adaptive sampling rates
  • Processor Registry: Registration and management of different processor types

§Usage

use scirs2_sparse::realtime_performance_monitor::{
    RealTimePerformanceMonitor, PerformanceMonitorConfig
};

// Create configuration
let config = PerformanceMonitorConfig::default()
    .with_monitoring_interval_ms(100)
    .with_adaptive_tuning(true)
    .with_alerts(true);

// Create monitor
let monitor = RealTimePerformanceMonitor::new(config);

// Start monitoring
monitor.start_monitoring()?;

// Register processors for monitoring
// monitor.register_quantum_processor(my_quantum_processor)?;
// monitor.register_neural_processor(my_neural_processor)?;

// Get monitoring data
let summary = monitor.get_monitoring_summary();
let alerts = monitor.get_active_alerts();
let recent_samples = monitor.get_recent_samples(100);

§Performance Optimization

The system automatically adapts monitoring frequency based on system load and provides detailed performance analytics:

// Get processor performance summary
let processor_summary = monitor.get_processor_summary();
for summary in processor_summary {
    println!("Processor {}: {:.2} ops/sec, {:.1}% efficiency",
        summary.processor_id,
        summary.avg_throughput,
        summary.efficiency_score * 100.0
    );
}

// Get system health metrics
if let Some(system_metrics) = monitor.get_system_metrics() {
    println!("System health score: {:.1}%", system_metrics.health_score() * 100.0);
}

Re-exports§

pub use alerts::Alert;
pub use alerts::AlertCondition;
pub use alerts::AlertManager;
pub use alerts::AlertRule;
pub use alerts::AlertSeverity;
pub use alerts::AlertStats;
pub use alerts::NotificationChannel;
pub use config::PerformanceMonitorConfig;
pub use config::UseCase;
pub use history::PerformanceHistory;
pub use history::PerformanceTrend;
pub use history::ProcessorSummary;
pub use metrics::AggregatedMetrics;
pub use metrics::ExecutionTimer;
pub use metrics::PerformanceSample;
pub use metrics::ProcessorType;
pub use metrics::SystemMetrics;
pub use monitor::HybridProcessorMonitor;
pub use monitor::MemoryCompressorMonitor;
pub use monitor::MonitoringSummary;
pub use monitor::NeuralProcessorMonitor;
pub use monitor::QuantumProcessorMonitor;
pub use monitor::RealTimePerformanceMonitor;

Modules§

alerts
Alert Management System
config
Configuration for Real-Time Performance Monitoring
history
Performance History Management
metrics
Performance Metrics and Measurement
monitor
Real-Time Performance Monitor Implementation