| 1 | module runtime |
| 2 | |
| 3 | struct C.task_basic_info { |
| 4 | resident_size u64 |
| 5 | } |
| 6 | |
| 7 | fn 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. |
| 10 | pub 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 |