Abrufen einer CPU-Statistik pro Thread

10

Wie erhalte ich die aktuelle CPU-Auslastung für jeden Thread in einer bestimmten Anwendung? Ist es möglich, diese Informationen von irgendwoher oder mit einem Tool abzurufen?

dabest1
quelle

Antworten:

8

Verwenden Sie für eine schnelle Antwort den Process Explorer von SysInternal . Doppelklicken Sie auf einen Prozess, um den Detaildialog zu öffnen. Die Registerkarte Threads enthält eine sortierbare Liste aller Threads, einschließlich Kontextwechsel-Delta und CPU-Zeit.

Richard
quelle
Ich habe zuvor Process Explorer verwendet, aber die CPU-Spalte dort nicht gesehen, weil sie zu schmal war und nur der Sortierpfeil als Überschrift der Spalte sichtbar war.
dabest1
7

Perfmon (Performance Monitor) sollte Ihnen die gewünschten Details liefern.

Im Folgenden wird Windows 2000, XP oder Server 2003 vorausgesetzt. Ich habe dies nicht überprüft, aber ich denke, dass der Leistungsmonitor in Vista, Windows 7 und Server 2008 etwas anders ist.

Um den Leistungsmonitor auszuführen, gehen Sie zu Start> Systemsteuerung> Verwaltung> Leistung

Um ein Diagramm für jeden Thread einer Anwendung hinzuzufügen, klicken Sie mit der rechten Maustaste auf das Diagramm und wählen Sie Eigenschaften. Möglicherweise möchten Sie alle mitgelieferten Standardeinstellungen entfernen, um ein übersichtlicheres Diagramm zu erhalten.

Klicken Sie auf die Schaltfläche "Hinzufügen ..." und stellen Sie sicher, dass "Lokale Computerzähler verwenden" aktiviert ist (es sei denn, Sie möchten einen anderen Server überwachen. Wählen Sie in diesem Fall diese Option aus).

Wählen Sie unter "Leistungsobjekt" "Thread"

Wählen Sie den Zähler "% Prozessorzeit" und dann alle Threads aus, die Sie überwachen möchten (Strg + Klicken, um mehrere auszuwählen). Klicken Sie auf "Hinzufügen" und dann auf "Schließen".

Zurück in den Eigenschaften können Sie das Diagramm beliebig anpassen, indem Sie Farben, Muster usw. zuweisen. Klicken Sie auf OK.

Wenn Sie dies tun, müssen Sie möglicherweise die Grafik starten. Wenn Sie dann auf das rote STOP-Zeichen klicken, damit es nicht aktiviert ist, wird die Grafik gestartet.

Mark Henderson
quelle
+ 1'd, bis auf den WMI-Kommentar zu Beginn, da er nicht viel mit dem Rest des Beitrags zu tun hat. Was erwähnt wurde, funktioniert auch für Vista und 2008 ziemlich ähnlich. Schließlich können Sie Perfmon auch starten, indem Sie perfmon.msc
DougN
Tut mir leid, ich habe meine Bedingungen verwechselt. Ich wollte Perfmon sagen. Ich werde es jetzt reparieren.
Mark Henderson
1

Prozessmonitor (sysinternals)

Ich würde denken, dass ProcessMonitor von Sysinternals (kürzlich von Microsoft gekauft) wahrscheinlich funktionieren würde.

Process Monitor ist ein erweitertes Überwachungstool für Windows, das das Echtzeit-Dateisystem, die Registrierung und die Prozess- / Thread-Aktivität anzeigt. Es kombiniert die Funktionen der beiden älteren Sysinternals-Dienstprogramme Filemon und Regmon und fügt eine umfangreiche Liste von Verbesserungen hinzu, darunter umfangreiche und zerstörungsfreie Filterung, umfassende Ereigniseigenschaften wie Sitzungs-IDs und Benutzernamen, zuverlässige Prozessinformationen, vollständige Thread-Stapel mit integrierter Symbolunterstützung für jeden Vorgang gleichzeitige Protokollierung in einer Datei und vieles mehr. Aufgrund seiner einzigartig leistungsstarken Funktionen ist Process Monitor ein zentrales Dienstprogramm für das Toolkit zur Fehlerbehebung und Malware-Suche in Ihrem System.

Hier ist der Link:

http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

KPWINC
quelle
Danke für Ihren Vorschlag. Ihre Antwort ist korrekt, aber was mir geholfen hat, die CPU-Auslastung pro Thread im Process Explorer zu ermitteln, war die Antwort, die ich von Richard ausgewählt habe.
dabest1
0

Sie können den eingebauten Windows-Leistungsmonitor verwenden. Geben Sie zu Beginn einfach perfmon ein und führen Sie ihn aus. Klicken Sie bei perfmon auf das Pluszeichen, wählen Sie Prozess aus, wählen Sie Ihren Prozess aus und wählen Sie dann aus, was Sie sehen möchten. zurück zum Wesentlichen!

NASA
quelle