scirs2_core/advanced_jit_compilation_impl/
analytics.rs1use crate::advanced_jit_compilation::cache::CacheStatistics;
4use crate::advanced_jit_compilation::profiler::ProfilerAnalytics;
5use std::time::Duration;
6
7#[derive(Debug, Clone)]
9pub struct CompilationStatistics {
10 pub total_compilations: u64,
12 pub successful_compilations: u64,
14 pub failed_compilations: u64,
16 pub cache_hits: u64,
18 pub avg_compilation_time: Duration,
20 pub total_compilation_time: Duration,
22 pub memory_usage: MemoryUsageStats,
24}
25
26#[derive(Debug, Clone)]
28pub struct MemoryUsageStats {
29 pub peak_memory_mb: f64,
31 pub avg_memory_mb: f64,
33 pub total_allocations: u64,
35 pub total_deallocations: u64,
37}
38
39#[derive(Debug)]
41pub struct JitAnalytics {
42 pub compilation_stats: CompilationStatistics,
44 pub cache_stats: CacheStatistics,
46 pub profiler_stats: ProfilerAnalytics,
48 pub overall_performance: f64,
50 pub optimization_effectiveness: f64,
52 pub recommendations: Vec<String>,
54}
55
56impl Default for CompilationStatistics {
57 fn default() -> Self {
58 Self {
59 total_compilations: 0,
60 successful_compilations: 0,
61 failed_compilations: 0,
62 cache_hits: 0,
63 avg_compilation_time: Duration::default(),
64 total_compilation_time: Duration::default(),
65 memory_usage: MemoryUsageStats {
66 peak_memory_mb: 0.0,
67 avg_memory_mb: 0.0,
68 total_allocations: 0,
69 total_deallocations: 0,
70 },
71 }
72 }
73}