Wie bestimmen Sie die hardware (CPU und RAM) auf einem Computer?
Arbeite ich an einem cross-Plattform-profiling-suite, und möchte hinzufügen, information über die Maschine, die CPU (Architektur/clock speed/Kerne) und RAM(Gesamt) der Bericht von jedem Lauf. Derzeit brauche ich zum Ziel Windows und Unix, also ich brauche Methoden, um diese Informationen aus beiden Plattformen, irgendwelche Hinweise?
Edit: vielen Dank für die tollen Antworten, Jetzt habe ich die CPU-Architektur, Anzahl der CPU-Kerne und Speicher insgesamt, aber ich bin immer noch fehlt eine Taktgeschwindigkeit der CPU irgendwelche Ideen für?
die Zeichenfolge, die aus __cpuinfo beinhaltet Taktgeschwindigkeit
Vielen Dank, jetzt sehe ich es ja auch in der brandstring
Vielen Dank, jetzt sehe ich es ja auch in der brandstring
InformationsquelleAutor Robert Gould | 2009-05-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter Windows können Sie GlobalMemoryStatusEx, um die Höhe der tatsächlichen RAM.
Prozessor-Informationen können eingeholt werden über GetSystemInfo.
InformationsquelleAutor i_am_jorf
Hier ist eine Methode für das erhalten der Informationen, die Sie möchten auf einem Windows-Rechner. Ich kopierte und klebte es von einem aktuellen Projekt mit einigen geringfügigen änderungen, so fühlen sich frei, um es sauber zu machen mehr Sinn.
Weitere Informationen finden Sie unter GetSystemInfo, GlobalMemoryStatusEx und __- cpuid -. Obwohl es mir nicht enthalten, können Sie auch feststellen, ob das OS 32 oder 64 bit über den GetSystemInfo-Funktion.
InformationsquelleAutor bsruth
Unter Windows, um festzustellen, CPU-Taktrate:
InformationsquelleAutor Robert Gould
Die CPU ist einfach. Verwenden Sie die
cpuid
Unterricht. Das überlasse ich den anderen Postern zu finden, die einen tragbaren Weg, um festzustellen, wie viel RAM ein system hat. 🙂Für Linux-spezifische Methoden, Sie können auf
/proc/meminfo
(und/proc/cpuinfo
, wenn Sie nicht belästigt werden, zu analysierencpuid
Antworten).Lesen Sie: intel.com/design/processor/applnots/241618.htm (kurze Antwort: ja). Alle Wetten sind aus, wenn die CPU zu alt ist, um Unterstützung cpuid, aber kein modernes system, die dieses Problem hat.
Ich dachte, dass nicht alle Systeme basieren auf der i386-Architektur-Prozessoren. (Obwohl Sie sich bewusst, dass diese möglicherweise nicht eine situation, die OP war interessiert)
Bleh, die ganze Welt ist ein x86/x64! 😛 (kleiner Scherz.)
InformationsquelleAutor Chris Jester-Young
Unter Linux kann man analysieren /proc/cpuinfo (enthält ein block info auf jedem Prozessor) und /proc/meminfo (enthält eine Vielzahl von Allgemeinen Speicher, Statistik, einschließlich MemTotal).
InformationsquelleAutor araqnid
Für Linux mit GCC, die Sie verwenden können, eine sehr ähnliche Lösung wie bei windows. Sie müssen den
<cpuid.h>
und Sie müssen, ändern Sie die Eingabe für die__cpuid()
Methode basiert auf diese.InformationsquelleAutor Mate Zabo
Unter Solaris:
-Für Speicher
-Für CPU
InformationsquelleAutor Robert Gould
http://en.wikipedia.org/wiki/CPUID Helfen könnte, für die CPUID -
InformationsquelleAutor Sweeney
Der OP will ein CPU-Taktrate Berechnung routine portabel zwischen Windows und Linux. Hier gehen Sie:
Offensichtlich funktioniert dies nur auf x86/x64, und es stützt sich auf TSC-Zählung mit der gleichen Geschwindigkeit wie die CPU. Wenn Sie das getan haben weird übertakten Dinge, z.B. meine ich übertakten, den FSB aber downrate den Multiplikator den core clock bei spec, so TSC zählen zu FSB Zeiten der maximale Multiplikator, das ist zu schnell.
Die besten Ergebnisse zu erhalten, bevor Sie von GetClockSpeed() würde ich vorschlagen, dass Sie eine anti-SpeedStep-Schleife z.B.
Niall
InformationsquelleAutor Niall Douglas
Ich geschrieben habe einige code, der verwendet den WMI-Dienst, um die Max Clock Speed, ich weiß, es ist VB.net aber es zeigt die Idee:
Win32_OperatingSystem-Referenz : http://msdn.microsoft.com/en-us/library/Aa394239
WMI-Referenz : http://msdn.microsoft.com/en-us/library/aa394572(v=VS.85).aspx
InformationsquelleAutor David Jarrett
Für Windows und Win32 C++ - Projekte:
http://www.codeguru.com/cpp/w-p/system/hardwareinformation/article.php/c9087/Three-Ways-to-Retrieve-Processor-Information.htm
Den oben genannten URL und die darin enthaltenen Artikel zeigt 3 verschiedene Möglichkeiten zum abrufen von CPU-Informationen auf Windows. Der source-code ist auf der Unterseite des Artikel ist gut geschrieben, und hat drei nützliche Klassen, die Sie aufrufen können, Win32 C++ - code.
InformationsquelleAutor GreatCentralSun