如何在objective-c或python中检测CPU速度和H.D.D rpm

时间:2010-10-10 12:47:57

标签: python objective-c system-setting

我是Objective-c的新手,因为学术上的原因我需要读取CPU速度和H.D.D rpm

访问objective-c或python

中某些系统设置的最简单方法是什么

我可以在这个项目中选择objective-c和python。

3 个答案:

答案 0 :(得分:2)

我认为你必须使用带有Python的C ++模块来检测硬盘的CPU速度或RPM。 Calculate total CPU usage可以帮助你

我对Obj-C一无所知,所以不能告诉你是否有可能用这种语言!

答案 1 :(得分:1)

通过使用python:

读取注册表,可以获得Windows 2000及以上报告的CPU速度
import _winreg

key = _winreg.OpenKey(
    _winreg.HKEY_LOCAL_MACHINE,
    r"HARDWARE\DESCRIPTION\System\CentralProcessor\0")

value, type = _winreg.QueryValueEx(key, "~MHz")
print 'CPU speed is:', value

我不知道如何为其他操作系统执行此操作,也不知道如何获取HDD rpms。

答案 2 :(得分:1)

检查CPU速度实际上不是Objective C的事情,它是操作系统的事情。在OS X上(我假设是iOS)你想看看sysctlbyname(3)和hw.cpufrequency属性,比如:

int hz;
size_t hz_size = sizeof(hz);
int rc = sysctlbyname("hw.cpufrequency", &hz, &hz_size, NULL, 0);
if (0 == rc) {
    fprintf(stderr, "Clockspeed is %d hz\n", hz);
}

我不知道获得磁盘驱动器RPM的好方法,但我确实知道一个糟糕的方法。解析system_profiler的输出,信息在那里(作为“旋转率”):

    Hitachi HTS543232L9SA02:

      Capacity: 320.07 GB (320,072,933,376 bytes)
      Model: Hitachi HTS543232L9SA02                 
      Revision: FB4AC50F
      Serial Number: (omitted)
      Native Command Queuing: Yes
      Queue Depth: 32
      Removable Media: No
      Detachable Drive: No
      BSD Name: disk0
      Rotational Rate: 5400
      Medium Type: Rotational
      Partition Map Type: GPT (GUID Partition Table)
      S.M.A.R.T. status: Verified
      Volumes:
        Macintosh HD:
          Capacity: 319.73 GB (319,728,959,488 bytes)
          Available: 12.4 GB (12,397,940,736 bytes)
          Writable: Yes
          File System: Journaled HFS+
          BSD Name: disk0s2
          Mount Point: /

可能有更好的抽象使用,我只是不知道。