ios获取系统信息的详细api

来源:互联网 发布:宽带网络套餐十机顶盒 编辑:程序博客网 时间:2024/06/05 14:06

MacOS X下查看CPU信息大致有3个方法:
用系统自带的System Information,它给出的信息比较少,比如无法知道CPU的线程数
用第三方软件CPU-X,它和著名的CPU-Z软件非常类似,很容易上手
用命令行工具
用名令行工具可以得到最详尽的CPU信息。以下命令可以把CPU相关的信息一网打尽:

sysctl -N -a | grep cpu | xargs sysctl -e  
hw.ncpu=4hw.cpufrequency_compat=1400000000hw.activecpu=4hw.physicalcpu=2hw.physicalcpu_max=2hw.logicalcpu=4hw.logicalcpu_max=4hw.cputype=7hw.cpusubtype=8hw.cpu64bit_capable=1hw.cpufamily=280134364hw.cpufrequency=1400000000hw.cpufrequency_min=1400000000hw.cpufrequency_max=1400000000hw.cputhreadtype=1machdep.cpu.max_basic=13machdep.cpu.max_ext=2147483656machdep.cpu.vendor=GenuineIntelmachdep.cpu.brand_string=Intel(R) Core(TM) i5-4260U CPU @ 1.40GHzmachdep.cpu.family=6machdep.cpu.model=69machdep.cpu.extmodel=4machdep.cpu.extfamily=0machdep.cpu.stepping=1machdep.cpu.feature_bits=9221959987971750911machdep.cpu.leaf7_feature_bits=10155machdep.cpu.extfeature_bits=142473169152machdep.cpu.signature=263761machdep.cpu.brand=0machdep.cpu.features=FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16Cmachdep.cpu.leaf7_features=SMEP ERMS RDWRFSGS TSC_THREAD_OFFSET BMI1 AVX2 BMI2 INVPCID FPU_CSDSmachdep.cpu.extfeatures=SYSCALL XD 1GBPAGE EM64T LAHF LZCNT RDTSCP TSCImachdep.cpu.logical_per_package=16machdep.cpu.cores_per_package=8machdep.cpu.microcode_version=23machdep.cpu.processor_flag=6machdep.cpu.mwait.linesize_min=64machdep.cpu.mwait.linesize_max=64machdep.cpu.mwait.extensions=3machdep.cpu.mwait.sub_Cstates=286531872machdep.cpu.thermal.sensor=1machdep.cpu.thermal.dynamic_acceleration=1machdep.cpu.thermal.invariant_APIC_timer=1machdep.cpu.thermal.thresholds=2machdep.cpu.thermal.ACNT_MCNT=1machdep.cpu.thermal.core_power_limits=1machdep.cpu.thermal.fine_grain_clock_mod=1machdep.cpu.thermal.package_thermal_intr=1machdep.cpu.thermal.hardware_feedback=0machdep.cpu.thermal.energy_policy=1machdep.cpu.xsave.extended_state=7 832 832 0machdep.cpu.xsave.extended_state1=1 0 0 0machdep.cpu.arch_perf.version=3machdep.cpu.arch_perf.number=4machdep.cpu.arch_perf.width=48machdep.cpu.arch_perf.events_number=7machdep.cpu.arch_perf.events=0machdep.cpu.arch_perf.fixed_number=3machdep.cpu.arch_perf.fixed_width=48machdep.cpu.cache.linesize=64machdep.cpu.cache.L2_associativity=8machdep.cpu.cache.size=256machdep.cpu.tlb.inst.large=8machdep.cpu.tlb.data.small=64machdep.cpu.tlb.data.small_level1=64machdep.cpu.tlb.shared=1024machdep.cpu.address_bits.physical=39machdep.cpu.address_bits.virtual=48machdep.cpu.core_count=2machdep.cpu.thread_count=4machdep.cpu.tsc_ccc.numerator=0machdep.cpu.tsc_ccc.denominator=0machdep.xcpm.cpu_thermal_level=0

可以看见
machdep.cpu.brand_string=Intel(R) Core(TM) i5-4260U CPU @ 1.40GHz
够详细吧,具体什么鬼,一个一个的我也不是全都明白。自己谷歌吧!

在代码中可以这样输出

    unsigned int ncpu;    size_t len = sizeof(ncpu);    sysctlbyname("hw.activecpu", &ncpu, &len, NULL, 0);    return (int)ncpu;

*
* hw.memsize -系统中的物理内存的字节数。
*
* hw.ncpu -处理器,这个引导可用的最大数量。
*使用此值对每个处理器阵列的静态大小进行调整,即处理器负载统计。
*
* hw.activecpu的处理器数量目前可供执行的线程。
*使用这个数字来确定在SMP感知应用程序中创建的数字线程。
*当电源管理模式发生改变时,这个号码可以改变。
*
* hw.physicalcpu -物理处理器的电源管理模式可数。
* hw.physicalcpu_max -物理处理器,这会引导可用的最大数量
*
* hw.logicalcpu -逻辑处理器在当前的电源管理模式可数。
* hw.logicalcpu_max -逻辑处理器,这会引导可用的最大数量
*
* hw.tbfrequency -这给了由操作系统使用的时间频率是所有定时服务的基础。
*一般来说是更好地使用马赫或更高级别的计时服务,但这个值
*需要将PPC的时基寄存器转换为实时。
*
* hw.cpufrequency -这些值提供电流,最大和最小的CPU频率。最小值和最大值分别为
* hw.cpufrequency_max所有电源管理模式。电流频率是电流模式中的最大频率。
* hw.cpufrequency_min所有频率Hz。
*
* hw.busfrequency -这些值提供电流,最大和最小的总线频率。最小值和最大值分别为
* hw.busfrequency_max所有电源管理模式。电流频率是电流模式中的最大频率。
* hw.busfrequency_min所有频率Hz。
*
* hw.cputype -这些值提供Mach-O CPU类型和亚型。完整的列表在<马赫/机器> >
* hw.cpusubtype -这些值应该被用来确定哪些处理器系列的CPU运行的是这样
*最佳二进制可以被选择,或最好的动态代码生成。他们不应该被使用
*以确定给定的处理器功能是否可用。
* hw.cputhreadtype -这个值将出现如果处理器支持线程。像hw.cpusubtype这个选择器
*不应该用来推断特征,只能用来命名处理器线程结构。
*值定义在<马赫/机器> >
*
* hw.byteorder给处理器的字节顺序。4321大头,1234小。
*
* hw.pagesize -给在由处理器和虚拟机系统采用页面字节大小。
*
* hw.cachelinesize -给在处理器的高速缓存行的字节大小。
*这个值应该用来控制使用缓存控制指令的循环的步幅
*喜欢dcbz,债或之间。
*
* hw.l1dcachesize -这些值提供在L1字节大小,L2和L3缓存。如果缓存不存在
* hw.l1icachesize -然后选择将返回错误。
* hw.l2cachesize—
* hw.l3cachesize—
*
* hw.packages给处理器的包数。
*
*这些是特定处理器可选处理器功能的选择器。返回错误的选择器不支持
*系统上。支持的功能将返回1,如果他们建议或0,如果他们支持,但预计不会帮助。
*性能。这些选择器的将来版本可能需要返回更大的值,所以最好对非零进行测试。
*
* PowerPC:
*
* hw.optional.floatingpoint -浮点指令
* hw.optional.altivec - AltiVec指示
* hw.optional.graphicsops图形操作
* hw.optional.64bitops - 64位指令
* hw.optional.fsqrt硬件浮点平方根指令
* hw.optional.stfiwx店浮点整数索引指示词
* hw.optional.dcba数据缓存块分配指令
* hw.optional.datastreams -数据流指令
* hw.optional.dcbtstreams数据缓存块触蒸指令形式
*
*x86架构:
*
* hw.optional.floatingpoint -浮点指令
* hw.optional.mmx原MMX向量指令
* hw.optional.sse -流SIMD扩展
* hw.optional.sse2 - Streaming SIMD Extens

0 0