Anzahl der CPU Kerne auslesen Vb.net ?(

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Anzahl der CPU Kerne auslesen Vb.net ?(

    Hallo ich suche eine Methode wie man in Visual Basic die Anzahl der CPU Kerne auslesen kann.



    Also wie hier in meinem Fall 6 :)

    Vielen Dank schon mal im vorraus,
    mfg Walller66

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    Environment.ProcessorCount könnte das sein, was Du brauchst.
    Beachte, dass das nur die logische Anzahl an Kernen ist. Also wenn Dein Computer 3 physikalische Kerne hat, die jeweils Hyperthreading unterstützen, dann läuft es auf 2 logische Kerne pro physischen Kern hinaus, also wird Environment.ProcessorCount 6 zurückgeben.
    "Luckily luh... luckily it wasn't poi-"
    -- Brady in Wonderland, 23. Februar 2015, 1:56
    Desktop Pinner | ApplicationSettings | OnUtils
    Jou.

    Walller66 schrieb:

    Anzahl der CPU Kerne
    Du kannst Deinem Programm sagen, mit wievielen und mit welchen Kernen es arbeiten soll, sofern Du MultiThreading programmierst.
    Für jeden Kern wird dabei ein Bit gesetzt => {(2 ^ n) - 1}. Ich hab ausprobiert, dass bei (n - 1) verwendeten Kernen die Performance sehr gut ist => {(2 ^ n) - 2}:

    C#-Quellcode

    1. int sumCore = (int)Math.Pow(2, (double)Environment.ProcessorCount) - 2;
    2. Process.GetCurrentProcess().ProcessorAffinity = new IntPtr(sumCore);

    VB.NET-Quellcode

    1. Dim sumCore As Integer = CInt(Math.Pow(2, CDbl(Environment.ProcessorCount))) - 2
    2. Process.GetCurrentProcess().ProcessorAffinity = New IntPtr(sumCore)

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!