从代码中获取有关iOS设备CPU,GPU和内存的信息的最佳方法是什么? 我想知道它有多少核心,cpu有多少GHz等等。 感谢。
答案 0 :(得分:8)
您无法通过代码获取设备CPU,GPU和内存信息。您阅读UIDevice developer reference并使用它获取其他信息:
UIDevice *device = [UIDevice currentDevice];
NSString *name = [device name];
NSString *sysname = [device systemName];
NSString *model = [device model];
可能甚至更棘手的规范,然后你参考维基百科iPhone文章来查找每个模型的硬件规格。
答案 1 :(得分:2)
我的评论仍然来自上面,因为你可以在Android上做一些事情,而不是期望能够在iOS上做到这一点。 Apple对于它们允许开发人员做什么的限制非常严格,因为它对Android更加放松。
但是要回答你的问题,我相信你可以通过两种方法中的一种来检测设备的核心数量,请注意,虽然我已经测试过这段代码,但我从未将它提交到Apple App Store,所以我没有&# 39;不知道它是否会通过,你自己承担风险。
获取核心数的方法1使用mach_host.h
来计算核心数。
#include <mach/mach_host.h>
int numberOfCores()
{
host_basic_info_data_t info;
mach_msg_type_number_t count;
count = HOST_BASIC_INFO_COUNT;
host_info(mach_host_self(), HOST_BASIC_INFO, (host_info_t)&info, &count);
return info.max_cpu;
}
获取核心数的方法2使用sysct1.h
计算核心数
#include <sys/sysct1.h>
unsigned int numberOfCores()
{
size_t len;
unsigned int ncpu;
len = sizeof(ncpu);
sysctlbyname("hw.ncpu", &ncpu &len, NULL, 0);
return ncpu;
}
您还可以将sysctlbyname("hw.ncpu", &ncpu &len, NULL, 0);
替换为sysctlbyname("hw.physicalcpu", &ncpu &len, NULL, 0);
以获取物理核心。
说实话,我不确定<mach/mach_host.h>
和<sys/sysct1.h>
是否是私人图书馆,所以这实际上是自负风险。