获得iOS CPU系统时间

时间:2016-11-23 08:31:46

标签: ios swift

我正在尝试以编程方式获取iOS CPU时间。

我正在创建一个使用Swift 3在iOS上打印CPU时间的应用程序。我使用了两个不同的函数:

var usage = rusage()
getrusage(RUSAGE_SELF, &usage
print(usage.ru_stime) //print system time`

  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 {
     print("System time: \(info.system_time)")
  }
  else {
     print("Error with task_info(): " +
        (String(cString: mach_error_string(kerr), encoding: String.Encoding.ascii) ?? "unknown error"))
  }

在Xcode模拟器上进行测试时,两种方法都有效,给我CPU系统时间,但是当我在实际设备上测试时,返回的时间总是为零。使用这两个函数,我可以获得CPU用户时间,但返回的CPU系统时间始终为零。

我是否必须为我的申请启用?为什么这些功能在模拟器上运行而在真实设备上不起作用?

谢谢。

0 个答案:

没有答案