CPU-Nutzung von Service-DLL?
-
03-07-2019 - |
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.
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:
- Verwenden Sie Perfmon alle Zähler für die Prozessobjektloggt sein.
- 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. - 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.