
我试图衡量长时间运行过程中的cpu利用率水平。 我怀疑每次运行task-manager查看数据时,进程的cpu利用率都会下降,因为taskmanager具有更高的优先级。 如果我给予我的进程实时优先级,那么任务pipe理器完全locking,我不能使用它。 我希望我的大部分cpu周期都用在这个过程中,我想大致了解它的使用情况。 我不需要一秒钟的显示器,只是几张快照让我知道发生了什么。 我怎样才能做到这一点?
尝试在windows PC上禁用处理器闲置状态(C状态)
如何确定linux中某些用户下运行的进程产生多lesscpu负载?
Power8处理器上有多less个NUMA节点
在linux中以百分比的forms精确计算cpu使用率?
使用Python查找cpu L3caching大小
用C API编程,可以使用性能计数器API。 (cpu使用率只是另一个计数器)。 您可以使用低级注册表API来查询数据的性能计数器 。 或者你可以使用PDH API (性能数据助手API) – 这可能是你想要的。 我已经在过去和PDH API都很容易使用。
另一个帮助你枚举可用计数器名字的工具是perfmon。 (只需运行c: windows system32 perfmon.exe)。 它也是任务管理器的一个有用的选择。 它也做记录和图表。 您可以为多处理器上的每个逻辑处理器设置计数器。
可能procdump – 但sysinternals过程工具之一应该帮助
我不确定你对任务管理器的关注是否有效。 任务管理器足够轻便,不会淹没长时间运行的进程,窃取足够多的cpu周期。 如果你的进程确实是那个cpu饿了,你会在任务管理器中看到它。 如果你没有看到你所期望的cpu使用率,那么你的过程需要一段时间,因为它使用了大量的cpu是错误的。 也许你的长时间运行的过程是长时间运行,因为它的IO绑定或等待事件或睡眠很多。 即做其他事情比使用cpu。 如果它使用了大量的cpu,但不是100%,或许它的效率不如我上面列出的相同的原因。
你可以写一个简单的工具,通过GetProcesstimes查询特定的进程(比如ID)
有些事情
main() HANDLE h = OpenProcess(PROCESS_query_informatION,FALSE,ID); for(;;) { GetProcesstimes(h,/*..times.. */); printf("time taken %dn",(kerneltime+usertime)); Sleep(1000); }
@martin Becket:procmon可以让你在一个特定的进程的属性中看到详细的cpu使用情况
总结以上是内存溢出为你收集整理的衡量/测量没有TaskMgr的CPU使用率?全部内容,希望文章能够帮你解决衡量/测量没有TaskMgr的CPU使用率?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)