Class: AiRootShield::Enterprise::PerformanceOptimizer

Inherits:
Object
  • Object
show all
Includes:
MonitorMixin
Defined in:
lib/ai_root_shield/enterprise/performance_optimizer.rb

Overview

Production-grade performance optimizer with memory management and false-positive reduction

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ PerformanceOptimizer

Returns a new instance of PerformanceOptimizer.



15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 15

def initialize(config = {})
  super()
  @config = default_config.merge(config)
  @optimization_level = @config[:optimization_level]
  @metrics = init_metrics
  @cache_stats = init_cache_stats
  @false_positive_reducer = FalsePositiveReducer.new(@config[:false_positive])
  @memory_manager = MemoryManager.new(@config[:memory])
  @performance_monitor = PerformanceMonitor.new(@config[:monitoring])
  
  start_optimization_engine if @config[:auto_optimize]
end

Instance Attribute Details

#cache_stats ⇒ Object (readonly)

Returns the value of attribute cache_stats.



13
14
15
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 13

def cache_stats
  @cache_stats
end

#metrics ⇒ Object (readonly)

Returns the value of attribute metrics.



13
14
15
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 13

def metrics
  @metrics
end

#optimization_level ⇒ Object (readonly)

Returns the value of attribute optimization_level.



13
14
15
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 13

def optimization_level
  @optimization_level
end

Instance Method Details

#optimize_analysis(analysis_data, options = {}) ⇒ Object

Optimize analysis performance



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 29

def optimize_analysis(analysis_data, options = {})
  start_time = Time.now
  
  synchronize do
    # Pre-processing optimization
    optimized_data = preprocess_data(analysis_data)
    
    # Apply performance optimizations
    result = apply_optimizations(optimized_data, options)
    
    # Post-processing cleanup
    result = postprocess_result(result)
    
    # Update metrics
    update_performance_metrics(start_time, result)
    
    result
  end
end

#optimize_memory ⇒ Object

Optimize memory usage



55
56
57
58
59
60
61
62
63
64
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 55

def optimize_memory
  @memory_manager.cleanup
  @memory_manager.optimize_caches
  
  {
    memory_freed: @memory_manager.last_cleanup_size,
    cache_hit_rate: @memory_manager.cache_hit_rate,
    memory_usage: @memory_manager.current_usage
  }
end

#performance_stats ⇒ Object

Get performance statistics



67
68
69
70
71
72
73
74
75
76
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 67

def performance_stats
  {
    optimization_level: @optimization_level,
    metrics: @metrics,
    cache_stats: @cache_stats,
    memory_stats: @memory_manager.stats,
    false_positive_rate: @false_positive_reducer.current_rate,
    uptime_seconds: Time.now - @metrics[:start_time]
  }
end

#reduce_false_positives(analysis_result) ⇒ Object

Reduce false positives using ML algorithms



50
51
52
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 50

def reduce_false_positives(analysis_result)
  @false_positive_reducer.process(analysis_result)
end

#set_optimization_level(level) ⇒ Object

Set optimization level

Raises:

  • (ArgumentError)


79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/ai_root_shield/enterprise/performance_optimizer.rb', line 79

def set_optimization_level(level)
  valid_levels = [:conservative, :balanced, :aggressive, :maximum]
  raise ArgumentError, "Invalid optimization level" unless valid_levels.include?(level)
  
  @optimization_level = level
  @config[:optimization_level] = level
  
  # Reconfigure components
  @false_positive_reducer.reconfigure(level)
  @memory_manager.reconfigure(level)
  
  log_optimization_event("Optimization level changed", { level: level })
end