summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/main.rs2
-rw-r--r--src/wait/rusage_ffi.rs12
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