Zahl der CPU-Kerne abfragen



  • Hallo Zusammen,

    gibt es eine Funktion, die die Anzahl der auf dem Rechner verfügbaren Kerne (ggf. inkl. Hyperthreading) zurückgibt?

    Vielen Dank für Eure Tips!!



  • ja



  • hustbaer schrieb:

    ja

    😃 😃 😃

    Mit der API-Funktion GetNativeSystemInfo(), verfügbar ab WinXP.
    Auf Systeme mit Win2000 und früher mußt Du GetSystemInfo() verwenden.

    SYSTEM_INFO s_systeminfo;
    if ( Betriebsystem >= WindowsXP )
    {
      GetNativeSystemInfo( &s_systeminfo );
      //Anm: Damit die Software auch auf Win2000 oder früher läuft, mußt Du die Funktion
      //GetNativeSystemInfo() per LoadLibrary() und GetProcAddress() verwenden!
    }
    else
    {
      GetSystemInfo( &s_systeminfo );
    }
    anzahlCPU = s_systeminfo.dwNumberOfProcessors ;
    

    HTH



  • hustbaer schrieb:

    ja

    🙄

    Mmacher schrieb:

    hustbaer schrieb:

    ja

    😃 😃 😃

    Mit der API-Funktion GetNativeSystemInfo(), verfügbar ab WinXP.
    Auf Systeme mit Win2000 und früher mußt Du GetSystemInfo() verwenden.

    SYSTEM_INFO s_systeminfo;
    if ( Betriebsystem >= WindowsXP )
    {
      GetNativeSystemInfo( &s_systeminfo );
      //Anm: Damit die Software auch auf Win2000 oder früher läuft, mußt Du die Funktion
      //GetNativeSystemInfo() per LoadLibrary() und GetProcAddress() verwenden!
    }
    else
    {
      GetSystemInfo( &s_systeminfo );
    }
    anzahlCPU = s_systeminfo.dwNumberOfProcessors ;
    

    HTH

    🙂
    super vielen Dank für die Info...



  • wird da eigentlich die Zahl der realen Kerne oder ggf. die Zahl der virtuellen Kerne (falls sich beides überhaupt unterscheidet) ausgegeben (z.B. bei den neuen "8-Kern"öProzessoren)?



  • Die Member s_systeminfo.dwNumberOfProcessors liefert Dir die Anzahl der realen (d.h. physikalischen) CPU-Kerne.

    Berücksichtigt man zusätzlich die Aspekte HT, NUMA, usw., so spricht man von logischen CPU-Kernen.
    Hierzu liefern Dir folgende Funktionen die zusätzlichen Infos:
    GetLogicalProcessorInformation(), verfügbar ab Windows XP mit SP3
    GetLogicalProcessorInformationEx(), verfügbar ab Windows 7

    Dafür habe ich keine Beispiele parat, da ich sie noch nie verwendet habe.
    Aber in der MSDN (und natürlich Google!) gibts Beispiele, z.B. http://msdn.microsoft.com/en-us/library/ms683194(VS.85).aspx

    HTH,
    Martin



  • prima - Danke! müßte also erst SP3 installieren - na mal sehen...



  • Die Info findet man innerhalb von 5 Minuten selbst wenn man icht aufn Kopf gefallen ist (und nicht zu faul dazu).
    Daher die IMO einzig sinnvolle Antwort: ja, gibt es.



  • @hustbaer:
    Du meinst wohl über WMI ?



  • Nein, ich meinte "ja" ist die einzig sinnvolle Antwort auf die ursprüngliche Frage, da man GetLogicalProcessorInformation per Google innerhalb von ein paar Minuten selbst findet, wenn man es bloss probiert.

    Daher habe ich ganz bewusst nur "ja" geschrieben. Was genaugenommen auch die einzige Frage die der OP explizit gestellt hat beantwortet.



  • Steht auch in der Registry.


Anmelden zum Antworten