swift 如何获得CPU使用率在macos与斯威夫特百分比?

lf5gs5x2  于 2023-02-03  发布在  Swift
关注(0)|答案(1)|浏览(240)

我正在尝试为MacOS做一个活动监视器(我知道有一个叫做活动监视器的Mac应用程序会告诉我),所以我想用Swift得到CPU使用率。我发现了一些类似的问题,但它们只适用于iOS。我还在Objective-C中找到了a question,但在Swift中没有,我对Objective-C不是很了解(我是Swift的人)。

lg40wkob

lg40wkob1#

你应该能够使用Task_infomach库中的mach_msg_type_number_t函数的组合来获得CPU使用率......至少AI是这么说的。:)
示例:

import Foundation
import mach

func getCPUUsage() -> Float {
    var kern: kern_return_t
    var task_info_count: mach_msg_type_number_t

    task_info_count = mach_msg_type_number_t(TASK_INFO_MAX)
    var tinfo = [integer_t](repeating: 0, count: Int(task_info_count))

    kern = task_info(mach_task_self_, task_flavor_t(TASK_BASIC_INFO), &tinfo, &task_info_count)
    if kern != KERN_SUCCESS {
        return -1
    }

    var taskInfo = task_basic_info()
    memcpy(&taskInfo, &tinfo, Int(task_info_count))

    let cpuUsage = Float(taskInfo.cpu_usage) / Float(TH_USAGE_SCALE * 100.0)

    return cpuUsage
}

相关问题