}
// Memory reporting
-cfg_if! {
- if #[cfg(target_arch = "wasm32")] {
- fn get_resident() -> Option<usize> {
- None
- }
- } else {
- cfg_if! {
- if #[cfg(windows)] {
- fn get_resident() -> Option<usize> {
- use std::mem::{self, MaybeUninit};
- use winapi::shared::minwindef::DWORD;
- use winapi::um::processthreadsapi::GetCurrentProcess;
- use winapi::um::psapi::{GetProcessMemoryInfo, PROCESS_MEMORY_COUNTERS};
-
- let mut pmc = MaybeUninit::<PROCESS_MEMORY_COUNTERS>::uninit();
- match unsafe {
- GetProcessMemoryInfo(GetCurrentProcess(), pmc.as_mut_ptr(), mem::size_of_val(&pmc) as DWORD)
- } {
- 0 => None,
- _ => {
- let pmc = unsafe { pmc.assume_init() };
- Some(pmc.WorkingSetSize as usize)
- }
+ cfg_if! {
+ if #[cfg(windows)] {
+ fn get_resident() -> Option<usize> {
+ use std::mem::{self, MaybeUninit};
+ use winapi::shared::minwindef::DWORD;
+ use winapi::um::processthreadsapi::GetCurrentProcess;
+ use winapi::um::psapi::{GetProcessMemoryInfo, PROCESS_MEMORY_COUNTERS};
+
+ let mut pmc = MaybeUninit::<PROCESS_MEMORY_COUNTERS>::uninit();
+ match unsafe {
+ GetProcessMemoryInfo(GetCurrentProcess(), pmc.as_mut_ptr(), mem::size_of_val(&pmc) as DWORD)
+ } {
+ 0 => None,
+ _ => {
+ let pmc = unsafe { pmc.assume_init() };
+ Some(pmc.WorkingSetSize as usize)
}
}
- } else {
- fn get_resident() -> Option<usize> {
- let field = 1;
- let contents = fs::read("/proc/self/statm").ok()?;
- let contents = String::from_utf8(contents).ok()?;
- let s = contents.split_whitespace().nth(field)?;
- let npages = s.parse::<usize>().ok()?;
- Some(npages * 4096)
- }
}
+ } else if #[cfg(unix)] {
+ fn get_resident() -> Option<usize> {
+ let field = 1;
+ let contents = fs::read("/proc/self/statm").ok()?;
+ let contents = String::from_utf8(contents).ok()?;
+ let s = contents.split_whitespace().nth(field)?;
+ let npages = s.parse::<usize>().ok()?;
+ Some(npages * 4096)
+ }
+ } else {
+ fn get_resident() -> Option<usize> {
+ None
+ }
+ }
}
}
}