我正在编写一个脚本,输出有关所用系统的信息。我想添加一个函数来打印系统使用了多少内存,但到目前为止我已经找到了像下面这样的函数,它只打印应用程序内存使用情况和总内存。
您是否偶然知道 Swift 中是否有一种方法,可能直接包含在 Foundation 框架中,可以检查整个系统的内存使用情况?
func getMemoryUsedAndDeviceTotalInMegabytes() -> (Float, Float) {
var used_megabytes: Float = 0
let total_bytes = Float(ProcessInfo.processInfo.physicalMemory)
let total_megabytes = total_bytes / 1024.0 / 1024.0
var info = mach_task_basic_info()
var count = mach_msg_type_number_t(MemoryLayout<mach_task_basic_info>.size)/4
let kerr: kern_return_t = withUnsafeMutablePointer(to: &info) {
$0.withMemoryRebound(to: integer_t.self, capacity: 1) {
task_info(
mach_task_self_,
task_flavor_t(MACH_TASK_BASIC_INFO),
$0,
&count
)
}
}
if kerr == KERN_SUCCESS {
let used_bytes: Float = Float(info.resident_size)
used_megabytes = used_bytes / 1024.0 / 1024.0
}
return (used_megabytes, total_megabytes)
}