From 50827c1847eaa78d62e152493bb99b6524fdb765 Mon Sep 17 00:00:00 2001 From: ErrorNoInternet Date: Thu, 15 Aug 2024 16:36:54 +0800 Subject: [PATCH] perf: break early after parsing required meminfo Also a match statement for compiler magic. --- src/system.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/system.rs b/src/system.rs index 964aec1..56a1ebe 100644 --- a/src/system.rs +++ b/src/system.rs @@ -48,10 +48,16 @@ pub fn get_memory_usage() -> Result { for line in std::fs::read_to_string("/proc/meminfo")?.lines() { let mut split = line.split_whitespace(); let key = split.next().unwrap_or(""); - if key == "MemTotal:" { - total_memory_kb = split.next().unwrap_or("0").parse().unwrap_or(0.0); - } else if key == "MemAvailable:" { - available_memory_kb = split.next().unwrap_or("0").parse().unwrap_or(0.0); + + match key { + "MemTotal:" => total_memory_kb = split.next().unwrap_or("0").parse().unwrap_or(0.0), + "MemAvailable:" => { + available_memory_kb = split.next().unwrap_or("0").parse().unwrap_or(0.0); + + // MemTotal comes before MemAvailable, stop parsing + break; + } + _ => (), } }