#[cfg(feature = "std")]
use sysinfo::System;
use tracing::{trace, Level};
#[expect(clippy::cast_precision_loss)]
pub fn log_memory_usage(name: &str) {
#[cfg(feature = "std")]
if tracing::level_enabled!(Level::TRACE) {
let mut system = System::new_all();
system.refresh_memory();
let available_memory = system.available_memory() as f64 / (1024.0 * 1024.0);
let used_memory = system.used_memory() as f64 / (1024.0 * 1024.0);
let percentage_memory_used = (used_memory / (used_memory + available_memory)) * 100.0;
trace!(
"{} Available memory: {:.2} MB, Used memory: {:.2} MB, Percentage memory used: {:.2}%",
name,
available_memory,
used_memory,
percentage_memory_used
);
}
}