当前位置:  开发笔记 > 编程语言 > 正文

C#程序可以以某种方式测量自己的CPU使用率吗?

如何解决《C#程序可以以某种方式测量自己的CPU使用率吗?》经验,为你挑选了2个好方法。

我正在开发一个将运行很长时间的后台程序,我有一个外部日志记录程序(SmartInspect),我希望定期提供一些值,以便在调试时实时监控它.

我知道我可以简单地启动多个程序,比如任务管理器或IARSN TaskInfo,但是我想在我自己的程序中保留所有内容,因为我还想添加一些简单的规则,比如程序使用的多于X%CPU,在日志中标记它.

我有一个后台线程,定期向SmartInspect提供一些统计信息,如内存消耗,工作集等.

这个线程是否有可能合理准确地衡量它消耗的计算机CPU资源量?主程序是单线程应用程序(除了记录统计信息的监视程序线程),因此如果一种技术仅限于单个线程使用多少,那么这也是好的.

我找到了一些与Linux和C的rusage相关的条目.我可以使用类似的东西吗?


编辑:好的,我尝试了性能计数器方式,但每次调用时都添加了大量的GC数据,因此内存使用和垃圾收集的图表飙升.我想我现在就把这部分留下来.



1> axk..:

您也可以使用System.Diagnostics.Process.TotalProcessorTime和System.Diagnostics.ProcessThread.TotalProcessorTime属性,用于计算您的处理器使用情况,如本文所述.



2> 小智..:

看看System.Diagnostics.PerformanceCounter.如果你运行起来perfmon.exe,你会看到可用的性能计数器范围(将'性能对象'设置为'进程'),其中一个是'%Processor Time'.

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有