¿Cómo puedo determinar mediante programación mi tipo de procesador?
Pregunta
¿Cómo puedo determinar mediante programación si mi máquina es una x86, x64 o IA64?
Solución
En sistemas Windows puede obtener la variable de entorno PROCESSOR_ARCHITECTURE. Aquí hay un artículo de MSDN que explica los valores que se pueden devolver.
PROCESSOR_ARCHITECTURE=AMD64 PROCESSOR_ARCHITECTURE=IA64 PROCESSOR_ARCHITECTURE=x86
Otros consejos
VBScript, verificando la variable de entorno 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, usando 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
En 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
Lo que generalmente es más importante que el procesador subyacente es en qué modo se está ejecutando el sistema operativo, además del procesador que está instalado en el host.
Examine la salida de " uname -p " (o uname (2))
Intel adoptó las extensiones de AMD para instrucciones de 64 bits, por lo que un valor de "x86_64" significa que está ejecutando un procesador Intel o AMD de 64 bits, de lo contrario está ejecutando el x86 ISA normal.
cpu-z es el programa que desea, le dirá qué procesador tiene y qué extensiones admite
En Java no debería necesitar saberlo. ;)