![]() |
welchen Kern nutzt ein Prozess?
Hallo,
gibt es eine einfache Methode herauszufinden, wieviel Kerne ein Prozess (nicht Thread) nutzt? (Evtl. auch welche?) Nach welchen Befehl muss ich suchen? LG Monday |
AW: welchen Kern nutzt ein Prozess?
![]() Standardmäßig sind es alle Kerne. Ausnahme: Der Elternprozess läuft nicht auf allen Kernen, denn die Affinity wird vererbt auf Kindprozesse. MfG Dalai |
AW: welchen Kern nutzt ein Prozess?
Aus reiner Neugier. Wozu muss man das wissen?
|
AW: welchen Kern nutzt ein Prozess?
![]() Verlinktes Programm kann das nicht nur bei Prozessen, sondern auch bei einzelnen Threads, und das sowohl lesend als auch schreibend. |
AW: welchen Kern nutzt ein Prozess?
Zitat:
Welche Frage willst du mit der Info denn beantworten? |
AW: welchen Kern nutzt ein Prozess?
Vielen Dank für die Hilfe.
GetProcessAffinityMask habe ich mir angesehen und ausprobiert. Ich erhalte dort aber eine mehrstellige Zahl, mit der ich nichts anzufangen weiß. Scheint mir doch komplizierter zu sein.
Delphi-Quellcode:
GetProcessAffinityMask(GetProcessHandleFromID(GetProcessID('notepad.exe')), procaffmask, sysaffmask);
Memo1.Lines.Add(IntToStr(procaffmask)); Wozu Wissen: In erster Linie so eine Prozessanzeige Übersicht. Und zum anderen habe ich verschiedene Berechnungsprogramme (nicht von mir), die unterschiedlich schnell rechnen. Leider weiß ich nicht, ob sie nur einen oder mehrere Kerne nutzen. Für Vergleichszwecke fände ich es deshalb schön zu Wissen wer mehrkerne nutzt und wer nicht. Das habe ich vor geraumer Zeit schonmal versucht herauszufinden, bin aber dort auch schon gescheitert. LG Monday |
AW: welchen Kern nutzt ein Prozess?
Zitat:
Bsp. Kern 1, 2 und 4 = binär 00001011 = dezimal 11 Hier hat einer eine übersichtliche Aufstellung gemacht (allerdings nur bis 8 Kerne): ![]() |
AW: welchen Kern nutzt ein Prozess?
Zitat:
![]() Da steht dann meistens sehr genau was du übergeben musst, was du zurückbekommst und was du ansonsten so beachten musst. |
AW: welchen Kern nutzt ein Prozess?
Wenn du es für die anderen Tools einfach nur mal sehen möchtest, kannst du dafür den Process Explorer nehmen. Der zeigt soweit ich mich erinnere pro Prozess die Auslastung pro Kern an.
Und hier solltest du im Quelltext finden wie man so etwas ausliest: ![]() |
AW: welchen Kern nutzt ein Prozess?
Zitat:
Ein-Kern-CPU: Dein Programm guckt, damm läuft aktuell kein anderer Prozess auf irgendeinem Kern ... du bist da ja schon. Auch bei einer Mehr-Kern-CPU muß ein Programm "gerade" garnicht laufen ... bei tausenden Threads im System auch relativ wahrscheinlich, daß grade wer anderes auf den Kernen werkelt. Der Sheduler kann prinzipiell alle x-Millisekunden jeden Thread auf einen andereren Kern schieben. Oder anders gesagt, ein Programm läuft nicht auf einem Kern, sondern jeweils auf irgendeinem, den der Sheduler grade für "besser" hält und das kann sich schnell ändern. Über Affinitätsmaske kann man aber die Kerne einschränken, auf denen ein Prozess laufen darf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz