【问题标题】:In iOS, how do I get the current CPU Utilization from inside an app that is running?在 iOS 中,如何从正在运行的应用程序中获取当前的 CPU 利用率?
【发布时间】:2011-07-22 21:39:17
【问题描述】:

我正在寻找一种方法来获取 CPU 利用率数字,例如使用 C/C++/Obj-C 在 Instruments 和 Activity Monitor 中,以便我可以使用它进行一些自动化测试。我正在寻找大约 1 秒的粒度,尽管 100 毫秒是理想的。看待这个问题的另一种方式是“Activity Monitor 如何获取它获取的信息?”。

这是我目前发现的:

  • 许多 *nix 等效项似乎不适用于 iOS
    • sysctl 没有 KERN_CPTIME
    • iOS 没有 proc 文件系统,所以我不能使用 /进程/统计。
      • 这消除了很多程序,如 vmstat 和 iostat
  • MacOSX 的 sample 在 iOS 中不存在。

【问题讨论】:

    标签: ios profiling instruments activity-monitor


    【解决方案1】:

    我找到了答案。有一个未记录的 API,具有 PROCESSOR_CPU_LOAD_INFO 风格的 host_processor_info(),它可以为您提供系统、用户、nice 和空闲滴答的数量。您必须从之前的调用中减去滴答数才能获得当前的 CPU 利用率。记得在你得到的数组上调用 vm_deallocate。

    【讨论】:

      【解决方案2】:

      你不能。对此信息的标准 Un*x 访问在 iOS 应用程序中不可用。

      【讨论】:

      • 我同意标准的 *nix 访问方式不可用,但是 Activity Monitor 和 Instruments 如何获取信息?它可能是一个未记录或受限制的 API,但我希望有一些公共 API 可以做到这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-03
      • 1970-01-01
      • 1970-01-01
      • 2010-09-06
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多