diff options
author | syn <isaqtm@gmail.com> | 2020-02-27 14:26:22 +0300 |
---|---|---|
committer | syn <isaqtm@gmail.com> | 2020-02-27 14:26:22 +0300 |
commit | 4a70743d725693c5980b157a819c4e6fa80b3e01 (patch) | |
tree | c5e872e10316a705a1daed26a0d91a232adc634a /src | |
parent | 921853677e95f6e129018e8e57956ea5c4ec947d (diff) | |
download | evr-4a70743d725693c5980b157a819c4e6fa80b3e01.tar.gz |
Fix maxrss on macos
On BSDs ru_maxrss measures in bytes,
so fix output for bsd systems (incl macos)
Diffstat (limited to 'src')
-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 |