Skip to content

Instantly share code, notes, and snippets.

View tinder-tannerbennett's full-sized avatar

Tanner Bennett tinder-tannerbennett

View GitHub Profile
@tinder-tannerbennett
tinder-tannerbennett / MemoryFootprint.swift
Created September 17, 2021 21:22
Get the memory footprint of the current process. Taken from StackOverflow.
func memoryFootprint() -> mach_vm_size_t? {
let integer_t_size = MemoryLayout<integer_t>.size
let count = mach_msg_type_number_t(MemoryLayout<task_vm_info_data_t>.size / integer_t_size)
let TASK_VM_INFO_REV1_COUNT = mach_msg_type_number_t(MemoryLayout.offset(of: \task_vm_info_data_t.min_address)! / integer_t_size)
var info = task_vm_info_data_t()
let kr = withUnsafeMutablePointer(to: &info) { infoPtr in
infoPtr.withMemoryRebound(to: integer_t.self, capacity: Int(count)) { intPtr in
return task_info(mach_task_self_, task_flavor_t(TASK_VM_INFO), intPtr, &count)
}