Come posso determinare a livello di programmazione se la mia macchina è un x86, x64 o un IA64?Come posso determinare a livello di programmazione il mio tipo di processore?
risposta
su sistemi Windows è possibile ottenere il PROCESSOR_ARCHITECTURE variabile d'ambiente. Ecco un articolo di MSDN che spiega i valori che è possibile restituire.
PROCESSOR_ARCHITECTURE=AMD64 PROCESSOR_ARCHITECTURE=IA64 PROCESSOR_ARCHITECTURE=x86
Non sono sicuro del motivo per cui è stato contrassegnato, digita nella riga di comando echo% PROCESSOR_ARCHITECTURE% –
esattamente quello che stavo cercando! –
L'articolo MSDN suggerisce che questo indica l'architettura del sistema operativo, non il tipo di processore (è possibile avere il sistema operativo x86 sul processore x86_64). –
CPU-Z è il programma che si desidera, vi dirà che il processore si ha e ciò estensioni supporta
http://www.cpuid-pro.com/index.php è la pagina per gli sviluppatori. Ciò fornirà un sacco di dettagli su CPU, architettura ecc. Se necessario –
In 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);
}
}
Invece di ottenere "VendorIdentifier" si potrebbe desiderare di ottenere "ProcessorNameString" che contiene il nome del modello comune del fornitore. – galaktor
cat/proc/cpuinfo
Cosa c'è di solito più importante rispetto al processore di fondo è quello che modalità il sistema operativo è in esecuzione in, oltre a il processore installato sull'host.
Esaminare l'output di "uname -p" (o uname (2))
Intel ha adottato le estensioni di AMD per le istruzioni a 64 bit così un valore "x86_64" significa che si sta eseguendo sia un processore Intel o AMD Processore a 64 bit, altrimenti si esegue il normale ISA x86.
In Java non è necessario conoscere. ;)
VBScript, controllando la variabile d'ambiente 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, utilizzando 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
Si potrebbe aprire il computer e guardare la CPU. Stai cercando una risposta al codice? –
forse intendi chiedere "come posso sapere qual è il mio tipo di macchina?" – belgariontheking
Se sei su Linux prova 'uname -m' –