| 238 | } |
| 239 | |
| 240 | fn parse_vm_line(line: &str) -> Option<(String, String, String)> { |
| 241 | let re = regex::Regex::new( |
| 242 | r"Peak RSS:\s*([\d.]+\s*[A-Z]+),\s*Peak Commit:\s*([\d.]+\s*[A-Z]+),\s*Page Faults:\s*([\d.]+)" |
| 243 | ).ok()?; |
| 244 | let caps = re.captures(line)?; |
| 245 | let peak_rss = caps.get(1)?.as_str().to_string(); |
| 246 | let peak_commit = caps.get(2)?.as_str().to_string(); |
| 247 | let page_faults = caps.get(3)?.as_str().to_string(); |
| 248 | Some((peak_rss, peak_commit, page_faults)) |
| 249 | } |
| 250 | |
| 251 | // Print as simple aligned table |
| 252 | fn print_summary_table(results: &[QueryResult]) { |