如何在 Objective-c 或 python 中检测 CPU 速度和 HDD rpm

Posted

技术标签:

【中文标题】如何在 Objective-c 或 python 中检测 CPU 速度和 HDD rpm【英文标题】:How to detect CPU speed and H.D.D rpm in objective-c or python 【发布时间】:2011-04-23 10:56:07 【问题描述】:

我是 Objective-c 的新手,出于学术原因,我需要了解 CPU 速度和 HDD rpm

在objective-c或python中访问某些系统设置的最简单方法是什么

对于这个项目,我可以在 Objective-c 和 python 之间进行选择。

【问题讨论】:

我们是否假设您正在寻找有关 Mac OS X 的信息? 不,正如我提到的,出于学术原因,我需要这个。实际上,我们想检查在 Python 或 Objective-C 中访问系统信息的难易程度。并将其与 C 和 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 的输出,信息就在里面(如“Rotational Rate”):

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

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

【讨论】:

【参考方案2】:

这可以通过使用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 rpm。

【讨论】:

【参考方案3】:

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

我对 Obj-C 一无所知,所以无法告诉您是否可以使用该语言!

【讨论】:

以上是关于如何在 Objective-c 或 python 中检测 CPU 速度和 HDD rpm的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Objective-C 中要求用户接受或拒绝 WKWebView 网站的 cookie

如何在 Objective-C 中管理、跟踪或同步多个服务器的异步请求?

如何在 Xcode 项目中将 Font Awesome 与 Objective-C 或 Swift 集成和使用?

如何像为 .m 和 .h 一样为 C++ 或 .mm (Objective-C++) 文件创建桥头文件?

如何使用 Objective-c 中的变量调用属性或其方法? [复制]

如何在Windows上编译Objective-C