diff options
-rw-r--r-- | src/main.rs | 2 | ||||
-rw-r--r-- | src/wait/rusage_ffi.rs | 12 |
2 files changed, 13 insertions, 1 deletions
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<libc::rusage> 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 |