2010-10-10 52 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:/

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