在执行过程中的特定时间,计算总cpu使用率的最佳algorithm是什么?
我正在使用C ++的Windows平台。
错误在Windows上导入Impyla库
截取Windows消息和Winforms
如何在Python中的Windows上创build一个命名的临时文件?
如何获得Windows解锁事件在C#窗口应用程序?
GetProcesstimes为100纳秒的分辨率。 如果您想要循环时间,请在Vista和更高版本中使用QueryProcessCycleTime 。
英特尔VTune是一个很好的分析cpu资源的工具: http : //www.intel.com/cd/software/products/asmo-na/eng/239144.htm
让我推荐你这个伟大的文章: http : //www.codeproject.com/KB/threads/Get_cpu_Usage.aspx
我相信你会发现它有用。
使用WMI来获得“PercentProcessorTime”; 要小心这可能会有其自己的表现的惩罚。
如果您正在寻求遏制您的应用程序,更好的方法是根据您的应用程序制定自己的内部性能指标,并进行节制(例如屏幕刷新率等)
不要使用WMI简单地使用win32 NAPI
// 宣布
PerformanceCounter cpuCounter = null;
//在构造函数中的某个地方初始化..
cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName =“Processor”;
cpuCounter.CounterName =“处理器时间百分比”;
cpuCounter.InstanceName =“_Total”;
cpuCounter.NextValue()
资料来源:http: //zamov.online.fr/EXHTML/CSharp/CSharp_927308.html
获取一段时间内总cpu负载的最简单方法是使用GetSystemTimes API。 这是一个启动Windows XP SP1的内核函数。 它会返回系统启动后使用的cpu时间。 因此,在一个时间间隔内获得的这些值之间的差异会导致该时间间隔内的总cpu使用率。
请记住,该函数提供的内核时间包括“空闲”时间,因此您必须减去由第一个参数返回的空闲时间。
该函数返回所有核心/处理器可用的总时间,因此您可能还需要将增量除以从GetSystemInfo获得的处理器数量。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。