proof_of_sql/utils/
log.rs

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