Вопрос

Мне нужно выяснить загрузку ЦП служебной DLL. Я посмотрел в существующих примерах, и мы можем найти загрузку процессора для процессов.

Я думаю, что DLL будет загружена services.exe. Так можно ли определить загрузку процессора с помощью DLL.

Я работаю в C ++ на платформе Windows.

Это было полезно?

Решение

Сделайте копию файла svchost.exe и назовите его dbgsrvc.exe; затем перейдите к записи службы в реестре (например, HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlog) и измените ImagePath, чтобы использовать dbgsrvc вместо служб. Таким образом, вы изолировали свой сервис в своем собственном процессе, чтобы на нем можно было получить счетчики производительности.

Другие советы

Единственные счетчики производительности, доступные в Windows, находятся на уровне процесса. Что вы подразумеваете под сервисом DLL? Единственная известная мне служба.DLL - это троянский вирус.

Но вы говорите о библиотеках общих служб или конкретном файле?

Попробуйте это:

<Ол>
  • Используйте Perfmon для регистрации всех счетчиков для объекта процесса.
  • До или после теста запустите tasklist / svc из командной консоли. Просмотрите вывод для svchost.exe, в котором размещается ваш сервис. Обратите внимание на PID этого процесса.
  • После теста используйте Perfmon для загрузки файла журнала, добавьте измерения процесса для процесса на шаге 2.
  • Вы должны следить за процессом размещения DLL.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top