From fa276973c4dd891237001a67e13a97a9041c8f53 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Tue, 10 Dec 2024 11:16:16 -0700 Subject: [PATCH] validate-shaping: show approx memory usage of processed files --- Cargo.lock | 2 ++ crates/validate-shaping/Cargo.toml | 2 ++ crates/validate-shaping/src/main.rs | 10 ++++++++++ 3 files changed, 14 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 31c26951..07a4aa36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -7373,7 +7373,9 @@ version = "0.1.0" dependencies = [ "anyhow", "clap", + "human_bytes", "kumo-api-types", + "re_memory", "tokio", ] diff --git a/crates/validate-shaping/Cargo.toml b/crates/validate-shaping/Cargo.toml index f866963c..a7778122 100644 --- a/crates/validate-shaping/Cargo.toml +++ b/crates/validate-shaping/Cargo.toml @@ -6,5 +6,7 @@ edition = "2021" [dependencies] anyhow = {workspace=true} clap = {workspace=true} +human_bytes.workspace = true kumo-api-types = {path="../kumo-api-types", features=["lua"]} +re_memory.workspace = true tokio = {workspace=true, features=["full"]} diff --git a/crates/validate-shaping/src/main.rs b/crates/validate-shaping/src/main.rs index b4351130..1bd8ae7a 100644 --- a/crates/validate-shaping/src/main.rs +++ b/crates/validate-shaping/src/main.rs @@ -1,5 +1,7 @@ use clap::Parser; +use human_bytes::human_bytes; use kumo_api_types::shaping::{CheckLevel, Shaping, ShapingMergeOptions}; +use re_memory::MemoryUse; /// KumoMTA shaping configuration validator /// @@ -82,8 +84,11 @@ async fn main() { local_load: opts.local_load, }; + let memory_start = MemoryUse::capture(); match Shaping::merge_files(&opts.files, &shaping_opts).await { Ok(merged) => { + let memory_end = MemoryUse::capture(); + for err in merged.get_errors() { eprintln!("ERROR: {err}"); failed = true; @@ -91,6 +96,11 @@ async fn main() { for warn in merged.get_warnings() { eprintln!("WARNING: {warn}"); } + let counted = memory_end + .counted + .unwrap_or(0) + .saturating_sub(memory_start.counted.unwrap_or(0)); + println!("INFO: approx memory used = {}", human_bytes(counted as f64)); if !failed { eprintln!("OK"); }