在 iOS 中,如何从正在运行的应用程序内部获取当前的 CPU 利用率?
我正在寻找一种方法来获取 CPU 利用率数字,例如使用 C/C++/Obj-C 的仪器和活动监视器,以便我可以用它进行一些自动化测试。我正在寻找大约 1 秒的粒度,尽管 100 毫秒是理想的。看待这个问题的另一种方式是“活动监视器如何获取它所获取的信息?”。
以下是我到目前为止发现的内容:
I'm looking for a way to get the CPU Utilization numbers like in Instruments and Activity Monitor with C/C++/Obj-C so I can do some automated testing with it. I'm looking for somewhere around a 1 second granularity, though 100 ms would be ideal. Another way to look at this question would be "How does Activity Monitor get the info it gets?".
Here's what I have found out so far:
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我找到了答案。有一个未记录的 API,即带有 PROCESSOR_CPU_LOAD_INFO 风格的 host_processor_info(),它可以为您提供系统、用户、nice 和空闲时钟周期的数量。您必须减去先前调用的滴答数才能获得当前的 CPU 利用率。请记住对您获得的数组调用 vm_deallocate。
I found out the answer. There is an undocumented API, host_processor_info() with the PROCESSOR_CPU_LOAD_INFO flavor, that can give you the number of system, user, nice, and idle ticks. You have to subtract the number of ticks from a previous call to it to get the current CPU utilization. Remember to call vm_deallocate on the array you get.
你不能。 iOS 应用程序中不提供对此信息的标准 Un*x 访问。
You cannot. The standard Un*x access to this information is not available within an iOS app.