v / vlib / runtime / used_memory_darwin.c.v
17 lines · 14 sloc · 443 bytes · a87a4d73b9ab25cfff0822f4e94cf2a2d9e64323
Raw
1module runtime
2
3struct C.task_basic_info {
4 resident_size u64
5}
6
7fn C.task_info(C.task_t, i32, &C.task_basic_info, &u64) i32
8
9// used_memory retrieves the current physical memory usage of the process.
10pub fn used_memory() !u64 {
11 mut info := C.task_basic_info{}
12 mut count := u64(C.MACH_TASK_BASIC_INFO_COUNT)
13 if C.task_info(C.mach_task_self(), C.TASK_BASIC_INFO, &info, &count) == C.KERN_SUCCESS {
14 return info.resident_size
15 }
16 return 0
17}
18