资源介绍
计算每个进程的CPU利用率的函数是int CShowAllProcessDlg::GetCpusage(int Index, DWORD id)
第一个参数是进程在进程数组中的位置,而第二个参数是进程的ID。
重要的事,计算的公式需要获得一定时间间隔的两组进程数据来完成(这样计算才精确)。
所以,定义了两个数组:
__int64 LastTotalProcessCPUUsage[50];
__int64 LastCurrentProcessCPUUsage[50];
来存放获取的数据,这两个数组很重要,当然你也可以通过其他的方法实现。若要实时刷新进程的CPU利用率的话,下次运算的时候还要用到数组中的数据。
另外,这个程序本来打算做成像Windows的任务管理器的——实时刷新CPU利用率。可后来发现换到另一电脑时,刷新出来的值是不对的。原来不同的CPU,其主频是不一样的,所以设置的刷新间隔时间(SetTimer的第二个参数,以毫秒为单位)也应不同。你可根据自己的情况去设置。
那个Readme希望你能读一下,也许对你有所帮助。
我给你传的是实时刷新的。你也可以连续点击“获取进程”,观察CPU利用率随时间的变动情况。有可能出现负值,可能是你两次点击间的时间间隔太长的缘故。我不能保证获取值的正确性。因为它的间隔时间不同,得出的值就有可能不同。:) 我也正在研究中。
想获取源码,请发邮件至mones84@126.com。
第一个参数是进程在进程数组中的位置,而第二个参数是进程的ID。
重要的事,计算的公式需要获得一定时间间隔的两组进程数据来完成(这样计算才精确)。
所以,定义了两个数组:
__int64 LastTotalProcessCPUUsage[50];
__int64 LastCurrentProcessCPUUsage[50];
来存放获取的数据,这两个数组很重要,当然你也可以通过其他的方法实现。若要实时刷新进程的CPU利用率的话,下次运算的时候还要用到数组中的数据。
另外,这个程序本来打算做成像Windows的任务管理器的——实时刷新CPU利用率。可后来发现换到另一电脑时,刷新出来的值是不对的。原来不同的CPU,其主频是不一样的,所以设置的刷新间隔时间(SetTimer的第二个参数,以毫秒为单位)也应不同。你可根据自己的情况去设置。
那个Readme希望你能读一下,也许对你有所帮助。
我给你传的是实时刷新的。你也可以连续点击“获取进程”,观察CPU利用率随时间的变动情况。有可能出现负值,可能是你两次点击间的时间间隔太长的缘故。我不能保证获取值的正确性。因为它的间隔时间不同,得出的值就有可能不同。:) 我也正在研究中。
想获取源码,请发邮件至mones84@126.com。
- 上一篇: 任务管理器的进程信息取得 C语言版
- 下一篇: 显示进程CPU利用率源码