質問
サービスDLLのCPU使用率を調べる必要があります。既存のサンプルを調べたところ、プロセスのCPU使用率がわかります。
DLLはservices.exeによってロードされると思います。したがって、DLLによってCPU使用率を見つけることは可能です。
WindowsプラットフォームのC ++で作業しています。
解決
svchost.exeのコピーを作成し、dbgsrvc.exeと呼びます。次に、レジストリのサービスエントリ(HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Eventlogなど)に移動し、サービスの代わりにdbgsrvcを使用するようにImagePathを変更します。そうすることで、サービスを独自のプロセスに分離し、パフォーマンスカウンターを取得できます。
他のヒント
Windowsで使用できるパフォーマンスカウンターは、プロセスレベルのみです。サービスDLLとはどういう意味ですか?私が知っている唯一のservice.DLLはトロイの木馬ウイルスです。
しかし、汎用サービスDLLまたは特定のファイルについて話しているのですか?
これを試してください:
- Perfmonを使用して、プロセスオブジェクトのすべてのカウンターを記録します。
- テストの前または後に、コマンドコンソールから
tasklist / svc
を実行します。サービスをホストしているsvchost.exeの出力を調べます。このプロセスのPIDに注意してください。 - テスト後、Perfmonを使用してログファイルを読み込み、ステップ2でプロセスのプロセス測定値を追加します。
dllをホストしているプロセスを監視する必要があります。
所属していません StackOverflow