2010-10-10 23 views
0

我是新来的Objective-C,对于学术的原因,我需要读取CPU速度和硬盘转速如何检测CPU的速度和在Objective-C或Python

什么是访问的最简单的方法硬盘转速objective-c或python中的一些系统设置我可以在这个项目中选择objective-c和python。

+1

我们是否假设您正在寻找有关Mac OS X的信息? – bbum 2010-10-10 17:11:39

+0

不,正如我所提到的那样,我需要这个为了学科的理由。实际上,我们想要检查在Python或Objective-C中访问系统信息有多么简单或困难。并将其与C和C++进行比较。 – 2010-10-11 05:08:57

回答

1

这可以通过使用python读取注册表中获得报告的CPU速度对于Windows 2000及以上:

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的RPM虽然。

2

我想你将不得不使用Python的C++模块来检测CPU速度或硬盘驱动器的RPM。 Calculate total CPU usage可以帮助你在这里

我不知道什么关于Obj-C,所以不能告诉你,如果这是可能的语言!

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:/

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