首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在不使用TaskMgr的情况下测量/测量CPU使用率?

在不使用TaskMgr的情况下测量/测量CPU使用率?
EN

Stack Overflow用户
提问于 2010-11-06 03:32:11
回答 5查看 4.9K关注 0票数 1

我正在尝试测量一个长时间运行的进程中的CPU利用率水平。我怀疑每次我运行task-manager查看数据时,进程的CPU利用率都会下降,因为taskmanager具有更高的优先级。如果我给我的进程RealTime优先级,那么任务管理器完全锁定,我不能使用它。我希望我的大部分CPU周期都致力于这个进程,并且我想大致了解它的利用率。我不需要一个一秒一秒的监视器,只需要几张快照就能让我知道发生了什么。我如何才能做到这一点呢?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-11-07 06:31:01

通过C API,您可以通过编程方式使用性能计数器API。(CPU使用率只是另一个计数器)。您可以使用数据的low-level registry API to query the performance counter。或者您可以使用PDH API (Performance Data Helper API) --这可能就是您想要的。我在过去使用过这两种方法,而且PDH api很容易使用。

另一个帮助您枚举可用计数器名称的工具是perfmon。(只需运行c:\windows\system32\perfmon.exe即可)。它也是任务管理器的一个有用的替代方案。它还可以记录日志和绘制图形。您还可以为多处理器机器上的每个逻辑处理器设置计数器。

票数 1
EN

Stack Overflow用户

发布于 2010-11-06 03:36:29

可能是procdump -但其中一个sysinternals process tools应该会有所帮助

票数 1
EN

Stack Overflow用户

发布于 2010-11-06 03:56:36

我不确定您对任务管理器的担忧是否成立。任务管理器足够轻量级,它不会淹没长时间运行的进程,也不会窃取足够多的CPU周期。如果你的进程真的很需要CPU,你会在任务管理器中看到它。如果您的进程没有看到预期的CPU使用率,那么您的假设可能是错误的,即您的进程需要一段时间,因为它使用大量CPU。也许您的长时间运行的进程是长时间运行的,因为它的IO是绑定的,或者等待事件,或者是大量休眠。也就是说,除了使用CPU之外,还可以做其他事情。如果它使用了大量的CPU,但不是你想要的100%,那么它的效率可能不会像我上面列出的那样高效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4109345

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档