scirs2_core/advanced_jit_compilation_impl/
config.rs1#[cfg(feature = "serialization")]
4use serde::{Deserialize, Serialize};
5
6#[cfg_attr(feature = "serialization", derive(Serialize, Deserialize))]
8#[derive(Debug, Clone)]
9pub struct JitCompilerConfig {
10 pub enable_aggressive_optimization: bool,
12 pub enable_vectorization: bool,
14 pub enable_loop_unrolling: bool,
16 pub enable_inlining: bool,
18 pub enable_cross_module_optimization: bool,
20 pub target_cpu: String,
22 pub target_features: Vec<String>,
24 pub optimization_level: u8,
26 pub enable_debug_info: bool,
28 pub cache_size_limit_mb: usize,
30 pub compilation_timeout_seconds: u64,
32 pub enable_profiling: bool,
34 pub enable_adaptive_compilation: bool,
36}
37
38impl Default for JitCompilerConfig {
39 fn default() -> Self {
40 Self {
41 enable_aggressive_optimization: true,
42 enable_vectorization: true,
43 enable_loop_unrolling: true,
44 enable_inlining: true,
45 enable_cross_module_optimization: true,
46 target_cpu: "native".to_string(),
47 target_features: vec!["avx2".to_string(), "fma".to_string(), "sse4.2".to_string()],
48 optimization_level: 3,
49 enable_debug_info: false,
50 cache_size_limit_mb: 512,
51 compilation_timeout_seconds: 30,
52 enable_profiling: true,
53 enable_adaptive_compilation: true,
54 }
55 }
56}
57
58#[cfg_attr(feature = "serialization", derive(Serialize, Deserialize))]
60#[derive(Debug, Clone)]
61pub struct NeuromorphicConfig {
62 pub enable_spike_optimization: bool,
64 pub enable_plasticity: bool,
66 pub enable_temporal_dynamics: bool,
68 pub time_step_resolution_us: f64,
70 pub max_spike_frequency_hz: f64,
72 pub refractory_period_ms: f64,
74 pub membrane_time_constant_ms: f64,
76 pub synapticdelay_range_ms: (f64, f64),
78 pub stdp_window_ms: f64,
80}
81
82impl Default for NeuromorphicConfig {
83 fn default() -> Self {
84 Self {
85 enable_spike_optimization: true,
86 enable_plasticity: true,
87 enable_temporal_dynamics: true,
88 time_step_resolution_us: 100.0, max_spike_frequency_hz: 1000.0,
90 refractory_period_ms: 2.0,
91 membrane_time_constant_ms: 10.0,
92 synapticdelay_range_ms: (0.5, 5.0),
93 stdp_window_ms: 20.0,
94 }
95 }
96}
97
98#[derive(Debug, Clone)]
100pub struct CacheConfig {
101 pub maxsize_mb: usize,
103 pub eviction_policy: EvictionPolicy,
105 pub enable_cache_warming: bool,
107 pub enable_persistence: bool,
109 pub persistence_dir: Option<std::path::PathBuf>,
111}
112
113#[derive(Debug, Clone)]
115pub enum EvictionPolicy {
116 LRU,
117 LFU,
118 Random,
119 FIFO,
120 Adaptive,
121}
122
123#[derive(Debug, Clone)]
125pub struct ProfilerConfig {
126 pub enable_execution_profiling: bool,
128 pub enable_compilation_profiling: bool,
130 pub samplingrate: f64,
132 pub retention_hours: u32,
134 pub enable_hotspot_detection: bool,
136 pub hotspot_threshold: f64,
138}
139
140#[derive(Debug, Clone)]
142pub struct ProfilingSessionConfig {
143 pub sampling_interval: std::time::Duration,
145 pub include_stack_traces: bool,
147 pub profile_memory: bool,
149 pub profile_syscalls: bool,
151}
152
153#[derive(Debug, Clone)]
155pub struct PatternCacheConfig {
156 pub max_patterns: usize,
158 pub pattern_ttl: std::time::Duration,
160 pub enable_lru: bool,
162}