proof_of_sql/utils/
log.rs

1#[cfg(feature = "std")]
2use sysinfo::System;
3use tracing::{trace, Level};
4
5/// Logs the memory usage of the system at the TRACE level.
6///
7/// This function logs the available memory, used memory, and the percentage of memory used.
8/// It only logs this information if the TRACE level is enabled in the tracing configuration.
9///
10/// # Arguments
11///
12/// * `name` - A string slice that holds the name to be included in the log message.
13#[expect(clippy::cast_precision_loss)]
14pub fn log_memory_usage(name: &str) {
15    #[cfg(feature = "std")]
16    if tracing::level_enabled!(Level::TRACE) {
17        let mut system = System::new_all();
18        system.refresh_memory();
19
20        let available_memory = system.available_memory() as f64 / (1024.0 * 1024.0);
21        let used_memory = system.used_memory() as f64 / (1024.0 * 1024.0);
22        let percentage_memory_used = (used_memory / (used_memory + available_memory)) * 100.0;
23
24        trace!(
25            "{} Available memory: {:.2} MB, Used memory: {:.2} MB, Percentage memory used: {:.2}%",
26            name,
27            available_memory,
28            used_memory,
29            percentage_memory_used
30        );
31    }
32}