➕ linux-only memory measurement
parent
70eb419fdc
commit
7fe4444b65
|
@ -249,6 +249,20 @@ pub async fn handle (
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn get_rss_from_status (proc_status: &str) -> Option <u64>
|
||||||
|
{
|
||||||
|
use std::str::FromStr;
|
||||||
|
|
||||||
|
for line in proc_status.lines () {
|
||||||
|
if let Some (rest) = line.strip_prefix ("VmRSS:\t").and_then (|s| s.strip_suffix (" kB"))
|
||||||
|
{
|
||||||
|
return u64::from_str (rest.trim_start ()).ok ();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
None
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg (test)]
|
#[cfg (test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use std::{
|
use std::{
|
||||||
|
@ -425,4 +439,11 @@ mod tests {
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn rss () {
|
||||||
|
let input = "VmHWM: 584 kB\nVmRSS: 584 kB\nRssAnon: 68 kB\n";
|
||||||
|
|
||||||
|
assert_eq! (get_rss_from_status (input), Some (584));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue