fn get_rss_mb() -> f64 {
let pid = std::process::id();
let output = std::process::Command::new("powershell")
.args([
"-Command",
&format!(
"(Get-Process -Id {} | Select-Object -ExpandProperty WorkingSet64)",
pid
),
])
.output();
match output {
Ok(out) => {
let stdout = String::from_utf8_lossy(&out.stdout);
stdout.trim().parse::<f64>().unwrap_or(0.0) / (1024.0 * 1024.0)
}
Err(_) => 0.0,
}
}
fn main() {
use sz_rust_core::container::Container;
const R9_THRESHOLD_MB: f64 = 30.0;
println!("=== sz-rust-core 启动内存 RSS 基线(铁律 R9) ===");
let mut peak = get_rss_mb();
println!("初始 RSS: {:.2} MiB", peak);
let _container = Container::default();
let after_container = get_rss_mb();
peak = peak.max(after_container);
println!("Container 初始化后: {:.2} MiB", after_container);
println!("峰值 RSS: {:.2} MiB", peak);
println!("铁律 R9 阈值: {:.1} MiB", R9_THRESHOLD_MB);
if peak < R9_THRESHOLD_MB {
println!("判定: ✅ 通过(峰值 < 30 MiB)");
} else {
println!("判定: ❌ 失败(峰值 >= 30 MiB,需优化)");
std::process::exit(1);
}
}