CPUID 示例:确定 CPU 性能
更新:2007 年 11 月
CPUID 示例提供了一个例程,该例程使用 CPUID 指令来确定正在运行的 CPU 的性能。
该示例提供函数 int _cpuid(_p_info *pinfo),它返回有关 CPU 的数据。int 返回值是主处理器功能的标志的位屏蔽。可能设置的位有:
#define _CPU_FEATURE_MMX 0x0001
#define _CPU_FEATURE_SSE 0x0002
#define _CPU_FEATURE_SSE2 0x0004
#define _CPU_FEATURE_3DNOW 0x0008
安全说明: |
---|
提供该示例代码是为了阐释一个概念,并不代表着最安全的编码实践,因此不应在应用程序或网站中使用该示例代码。对于超出本示例代码的预期用途以外的使用所造成的偶然或继发性损失,Microsoft 不承担任何责任。 |
获取示例和安装示例的说明:
在 Visual Studio 的“帮助”菜单上,单击“示例”。
有关更多信息,请参见定位示例文件。
示例的最新版本和完整列表可以从 Visual Studio 2008 Samples page(Visual Studio 2008 示例页面)联机获取。
还可以在计算机的硬盘上查找示例。默认情况下,示例和自述文件将复制到 \Program Files\Visual Studio 9.0\Samples\ 下的文件夹中。对于 Visual Studio 速成版,所有示例都位于联机位置。
生成并运行示例
生成并运行此示例
打开解决方案 cpuid.sln。
从“生成”菜单中,单击“生成”。
从“调试”菜单中,选择“开始执行(不调试)”。
程序输出示例
示例包括一个 test.cpp 文件,它通常调用 _cpuid 并在生成的 _p_info 结构中输出值。例如,在支持 MMX 和 SSE 的 Pentium III 计算机上,程序输出与如下内容相仿:
C:\work\cpuid>test
v_name: GenuineIntel
model: INTEL Pentium-III
family: 6
model: 8
stepping: 3
feature: 00000003
yes _CPU_FEATURE_MMX
yes _CPU_FEATURE_SSE
no _CPU_FEATURE_SSE2
no _CPU_FEATURE_3DNOW
os_support: 00000003
yes _CPU_FEATURE_MMX
yes _CPU_FEATURE_SSE
no _CPU_FEATURE_SSE2
no _CPU_FEATURE_3DNOW
checks: 0000000f