cpu_features 即时查询 CPU 功能的函数库 项目简介
cpu_features 是一个小型的开源函数库,可以在运行时(Runtime)检索 CPU 功能,为了维持最大的可移植性以 C89 编写,不占用内存且能在沙盒环境执行。设计原理简单易用:请参阅下面的代码片段。扩展性:易于添加缺少的功能或体系结构。与旧的编译器兼容,可在许多架构上使用,为了确保 cpu_features 在尽可能多的平台上工作,在一个高度可移植的 C:gnu89 版本中实现了它。沙盒兼容。库使用各种策略来应对沙盒环境或何时cpuid不可用。。线程安全,没有内存分配,也没有引发异常。 cpu_features 是适合于基本 libc 函数 malloc,memcpy和memcmp实施。单元测试。在运行时检查功能下面是一个简单的例子,如果 CPU 同时支持 AES 和 SSE4.2 指令集,则执行的代码路径:#include "cpuinfo_x86.h"
static const X86Features features = GetX86Info().features;
void Compute(void) {
if(features.aes && features.sse4_2) {
// Run optimized code.
} else {
// Run standard code.
}
}
static const X86Features features = GetX86Info().features;
void Compute(void) {
if(features.aes && features.sse4_2) {
// Run optimized code.
} else {
// Run standard code.
}
}