![](/img/trans.png)
[英]How can I determine programmatically whether on multi-core, hyperthreading or multi-processor?
[英]How can I programmatically determine my processor type?
如何以編程方式確定我的機器是x86,x64還是IA64?
在Windows系統上,您可以獲取環境變量PROCESSOR_ARCHITECTURE。 這是一篇MSDN文章,解釋了可以返回的值。
PROCESSOR_ARCHITECTURE=AMD64 PROCESSOR_ARCHITECTURE=IA64 PROCESSOR_ARCHITECTURE=x86
VBScript,檢查PROCESSOR_ARCHITECTURE環境變量:
Set oShell = CreateObject("WScript.Shell")
Set oEnv = oShell.Environment("System")
Select Case LCase(oEnv("PROCESSOR_ARCHITECTURE"))
Case "x86"
' x86
Case "amd64"
' amd64
Case "ia64"
' ia64
Case Else
' other
End Select
VBScript,使用WMI:
Const PROCESSOR_ARCHITECTURE_X86 = 0
Const PROCESSOR_ARCHITECTURE_IA64 = 6
Const PROCESSOR_ARCHITECTURE_X64 = 9
strComputer = "."
Set oWMIService = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessors = oWMIService.ExecQuery("SELECT * FROM Win32_Processor")
For Each oProcessor In colProcessors
Select Case oProcessor.Architecture
Case PROCESSOR_ARCHITECTURE_X86
' x86
Case PROCESSOR_ARCHITECTURE_X64
' x64
Case PROCESSOR_ARCHITECTURE_IA64
' ia64
Case Else
' other
End Select
Next
在C#中:
using System;
using Microsoft.Win32;
class Class1
{
static void Main(string[] args)
{
RegistryKey RegKey = Registry.LocalMachine;
RegKey = RegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");
Object cpuSpeed = RegKey.GetValue("~MHz");
Object cpuType = RegKey.GetValue("VendorIdentifier");
Console.WriteLine("You have a {0} running at {1} MHz.",cpuType,cpuSpeed);
}
}
cat / proc / cpuinfo
通常比底層處理器更重要的是操作系統運行的模式,添加到主機上安裝的處理器。
檢查“uname -p”(或uname(2))的輸出
英特爾采用了AMD的64位指令擴展,因此值“x86_64”意味着您運行的是Intel或AMD 64位處理器,否則您將運行常規x86 ISA。
cpu-z是你想要的程序,它會告訴你你擁有哪個處理器以及它支持哪些擴展
在Java中,您不需要知道。 ;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.