Domanda

Devo scoprire l'utilizzo della CPU di una DLL di servizio. Ho cercato esempi esistenti e possiamo trovare l'utilizzo della CPU per i processi.

Penso che la DLL verrà caricata da services.exe. Quindi è possibile scoprire l'utilizzo della CPU tramite DLL.

Sto lavorando in C ++ sulla piattaforma Windows.

È stato utile?

Soluzione

Crea una copia di svchost.exe e chiamalo dbgsrvc.exe; quindi, accedere alla voce di servizio nel registro (ad esempio HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog) e modificare ImagePath per utilizzare dbgsrvc anziché i servizi. In questo modo, hai isolato il tuo servizio nel suo processo in modo da poter ottenere contatori di perf su di esso.

Altri suggerimenti

Gli unici contatori delle prestazioni disponibili in Windows sono a livello di processo. Cosa intendi per servizio DLL? L'unico service.DLL che conosco è un virus trojan.

Ma stai parlando di DLL di servizi generici o di un file specifico?

Prova questo:

  1. Utilizza Perfmon per registrare tutti i contatori per l'oggetto processo.
  2. Prima o dopo il test, eseguire tasklist / svc da una console di comando. Cerca nell'output lo svchost.exe che ospita il tuo servizio. Nota il PID di questo processo.
  3. Dopo il test, utilizzare Perfmon per caricare il file di registro, aggiungere le misurazioni del processo per il processo nel passaggio 2.

Dovresti monitorare il processo che ospita la dll.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top