brk: first commit

This commit is contained in:
nym21
2025-02-23 01:25:15 +01:00
parent 8c3f519016
commit 19cf34f9d4
266 changed files with 225 additions and 1268 deletions

47
_src/utils/flamegraph.rs Normal file
View File

@@ -0,0 +1,47 @@
use std::{fs, path::PathBuf};
use chrono::Local;
use crate::{
parser::{Databases, Datasets, States},
structs::Height,
};
// use crate::{databases::Databases, datasets::AllDatasets, states::States, structs::Height};
pub fn generate_allocation_files(
datasets: &Datasets,
databases: &Databases,
states: &States,
last_height: Height,
) -> color_eyre::Result<()> {
let mut flamegraph = allocative::FlameGraphBuilder::default();
flamegraph.visit_root(datasets);
flamegraph.visit_root(databases);
flamegraph.visit_root(states);
let output = flamegraph.finish();
let folder = format!(
"at-{}-result-of-{}",
Local::now().format("%Y-%m-%d_%Hh%Mm%Ss"),
last_height
);
let path = PathBuf::from(&format!("./target/flamegraph/{folder}"));
fs::create_dir_all(&path)?;
// fs::write(path.join("flamegraph.src"), &output.flamegraph())?;
let mut fg_svg = Vec::new();
inferno::flamegraph::from_reader(
&mut inferno::flamegraph::Options::default(),
output.flamegraph().write().as_bytes(),
&mut fg_svg,
)?;
fs::write(path.join("flamegraph.svg"), &fg_svg)?;
fs::write(path.join("warnings.txt"), output.warnings())?;
Ok(())
}