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