服务 DLL 的 CPU 利用率?
Posted
技术标签:
【中文标题】服务 DLL 的 CPU 利用率?【英文标题】:CPU Utilization of Service DLL? 【发布时间】:2009-01-06 20:40:18 【问题描述】:我需要找出服务 DLL 的 CPU 利用率。我查看了现有示例,我们可以找到进程的 CPU 利用率。
我认为 DLL 将由 services.exe 加载。那么是否可以通过 DLL 找出 CPU 使用率。
我在 Windows 平台上使用 C++。
【问题讨论】:
服务是否托管在 svchost 中? 【参考方案1】:复制 svchost.exe 并将其命名为 dbgsrvc.exe;然后,进入注册表中的服务条目(例如 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog),并将 ImagePath 更改为使用 dbgsrvc 而不是服务。这样,您就将您的服务隔离到它自己的进程中,这样您就可以获得性能计数器。
【讨论】:
【参考方案2】:Windows 中唯一可用的性能计数器位于进程级别。服务 DLL 是什么意思?我所知道的唯一 service.DLL 是木马病毒。
但是您是在谈论通用服务 DLL 还是特定文件?
【讨论】:
我正在讨论托管在 svchost.exe 或 servicee.exe 中的通用服务 dll【参考方案3】:试试这个:
-
使用 Perfmon 记录进程对象的所有计数器。
在测试之前或之后,从命令控制台运行
tasklist /svc
。查看托管服务的 svchost.exe 的输出。记下此进程的 PID。
测试后,使用 Perfmon 加载您的日志文件,在步骤 2 中添加进程测量值。
【讨论】:
【参考方案4】:您应该监控托管 dll 的进程。
【讨论】:
以上是关于服务 DLL 的 CPU 利用率?的主要内容,如果未能解决你的问题,请参考以下文章
怎样解决软件启动CPU占用率瞬间变高,导致软件启动变慢的问题;C++ Builder(BCB) 开发的大概有30个FORM