From 4a70743d725693c5980b157a819c4e6fa80b3e01 Mon Sep 17 00:00:00 2001 From: syn Date: Thu, 27 Feb 2020 14:26:22 +0300 Subject: Fix maxrss on macos On BSDs ru_maxrss measures in bytes, so fix output for bsd systems (incl macos) --- src/main.rs | 2 +- src/wait/rusage_ffi.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index b25443d..0d54445 100644 --- a/src/main.rs +++ b/src/main.rs @@ -59,7 +59,7 @@ fn main() { eprintln!("wall time: {:?}", status.wall_time); } if matches.is_present("mem") { - eprintln!("rss: {}K", status.usage.ru_maxrss); + eprintln!("rss: {}K", status.usage.get_rss_bytes() / 1000); } }, Err(err) => error!("{}", err) diff --git a/src/wait/rusage_ffi.rs b/src/wait/rusage_ffi.rs index 5948958..0a9117a 100644 --- a/src/wait/rusage_ffi.rs +++ b/src/wait/rusage_ffi.rs @@ -51,3 +51,15 @@ impl From for Rusage { } } } + +impl Rusage { + pub fn get_rss_bytes(&self) -> i64 { + if cfg!(target_os = "macos") { + self.ru_maxrss + } else if cfg!(target_os = "linux") { + self.ru_maxrss * 1000 // on linux ru_maxrss is in kilobytes + } else { + unimplemented!(); + } + } +} \ No newline at end of file -- cgit v1.2.1-18-gbd029