写点什么

CPU 功能

用户头像
Changing Lin
关注
发布于: 2 小时前
CPU 功能

1.ABI:使用预处理器的预定义宏

通常,在构建时使用 #ifdef 及以下各项确定 ABI 最为方便:

  • 对于 32 位 ARM,使用 __arm__

  • 对于 64 位 ARM,使用 __aarch64__

  • 对于 32 位 X86,使用 __i386__

  • 对于 64 位 X86,使用 __x86_64__


2. CPU 核心计数:使用 libc 的 sysconf(3)

既可以查询 _SC_NPROCESSORS_CONF(系统中的 CPU 核心数),又可以查询 _SC_NPROCESSORS_ONLN(当前可供使用的 CPU 核心数)。

sysconf - get configuration information at run time
#include <unistd.h>long sysconf(int name);
POSIX allows an application to test at compile or run timewhether certain options are supported, or what the value is ofcertain configurable constants or limits.
复制代码

3.功能:使用 libc 的 getauxval(3)

Android 的 C 库开始支持 getauxval(3)方法(API>18),AT_HWCAP 和 AT_HWCAP2 参数会返回列出特定 CPU 功能的位掩码。

4.Google cpu_features 库

Google 的 cpu_features 库凭借其对特定 SoC 的了解(通过解析 /proc/cpuinfo 掌握相应的 SoC),解决了 AT_HWCAP 在某些设备上不准确问题。例如,一些旧设备宣称拥有整数除法指令,但实际上并没有。

5.NDK cpufeatures 库(已弃用)

发布于: 2 小时前阅读数: 3
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
CPU 功能