Frage

Ich muss die CPU-Auslastung eines Dienstes DLL erfahren. Ich habe in den bestehenden Proben sah, und wir können die CPU-Auslastung für Prozesse finden.

ich denke, DLL wird von services.exe geladen werden. So ist es möglich, die CPU-Auslastung durch DLL erfahren.

Ich arbeite in C ++ auf der Windows-Plattform.

War es hilfreich?

Lösung

Erstellen Sie eine Kopie von svchost.exe und nennen es dbgsrvc.exe; Dann gehen Sie in den Service-Eintrag in der Registry (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog zum Beispiel), und die ImagePath statt Dienste zu nutzen dbgsrvc ändern. Auf diese Weise haben Sie Ihren Dienst in einem eigenen Prozess isoliert, so dass Sie perf Marken auf sie bekommen können.

Andere Tipps

Die einzigen verfügbaren Leistungsindikatoren in Windows sind auf der Prozessebene. Was meinst du mit Service DLL? Die einzige service.dll ich kenne ist ein Trojaner-Virus.

Aber reden Sie generischen Dienst DLLs oder eine bestimmte Datei?

Versuchen Sie folgendes:

  1. Verwenden Sie Perfmon alle Zähler für die Prozessobjektloggt sein.
  2. Vor oder nach dem Test lief tasklist /svc von einer Befehlskonsole. Schauen Sie durch den Ausgang für den svchost.exe, die Ihren Service bewirtet. Beachten Sie die PID dieses Prozesses.
  3. Nach dem Test verwenden Perfmon Ihrer Log-Datei zu laden, fügen die die Prozessmessungen für den Prozess in Schritt 2.

Sie sollten den Prozess Hosting der dll überwachen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top