Pergunta

Eu preciso descobrir a utilização da CPU de um DLL serviço. Eu olhei em amostras existentes e podemos encontrar a utilização da CPU para os processos.

Eu acho DLL será carregado pelo services.exe. Assim, é possível descobrir a utilização da CPU por DLL.

Eu estou trabalhando em C ++ na plataforma Windows.

Foi útil?

Solução

Faça uma cópia do svchost.exe e chamá-lo dbgsrvc.exe; em seguida, ir para a entrada do serviço no Registro (HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog por exemplo), e mudar o ImagePath usar dbgsrvc em vez de serviços. Dessa forma, você isolei o seu serviço em seu próprio processo para que possa obter perf sobre ela.

Outras dicas

Os únicos contadores de desempenho disponíveis no Windows estão no nível do processo. O que você quer dizer com DLL serviço? A única service.dll eu conheço é um vírus trojan.

Mas você está falando DLLs de serviços genéricos ou um arquivo específico?

Tente isto:

  1. Use Perfmon para registrar todos os contadores para o objeto do processo.
  2. Antes ou depois de seu teste, tasklist /svc executado a partir de um console de comando. Olhar através da saída para o svchost.exe que hospeda o serviço. Observe o PID deste processo.
  3. Após o teste, utilize Perfmon para carregar o arquivo de log, a adicionar as medições do processo para o processo no passo 2.

Você deve monitorar o processo que hospeda o dll.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top