문제

서비스 DLL의 CPU 활용을 찾아야합니다. 기존 샘플을 살펴보고 프로세스에 대한 CPU 사용을 찾을 수 있습니다.

DLL은 Services.exe에 의해로드 될 것이라고 생각합니다. DLL의 CPU 사용을 찾을 수 있습니다.

Windows 플랫폼에서 C ++에서 일하고 있습니다.

도움이 되었습니까?

해결책

svchost.exe 사본을 만들어 dbgsrvc.exe라고 부릅니다. 그런 다음 레지스트리 (hkey_local_machine system currentcontrolset services eventlog)에서 서비스 항목으로 이동하여 ImagePath를 변경하여 서비스 대신 DBGSRVC를 사용하십시오. 그렇게하면 서비스를 자체 프로세스로 격리시켜 성능 카운터를 얻을 수 있습니다.

다른 팁

Windows에서 사용할 수있는 유일한 성능 카운터는 프로세스 수준입니다. Service DLL이란 무엇을 의미합니까? 내가 아는 유일한 서비스는 트로이 바이러스입니다.

그러나 일반 서비스 DLL 또는 특정 파일에 대해 이야기하고 있습니까?

이 시도:

  1. Perfmon을 사용하여 프로세스 객체의 모든 카운터를 기록하십시오.
  2. 시험 전후에 실행하십시오 tasklist /svc 명령 콘솔에서. 서비스를 주최하는 svchost.exe의 출력을 살펴보십시오. 이 과정의 PID에 유의하십시오.
  3. 테스트 후 Perfmon을 사용하여 로그 파일을로드하고 2 단계의 프로세스에 대한 프로세스 측정을 추가하십시오.

DLL을 호스팅하는 프로세스를 모니터링해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top