1.获取CPU的使用率
主要就是一个计算。
int CUseRate::GetCPUUseRate() //获取CPU使用率 { int nCPUUseRate = -1; FILETIME ftIdle, ftKernel, ftUser; if (GetSystemTimes(&ftIdle, &ftKernel, &ftUser)) { double fCPUIdleTime = FileTimeToDouble(ftIdle); double fCPUKernelTime = FileTimeToDouble(ftKernel); double fCPUUserTime = FileTimeToDouble(ftUser); //CPU利用率公式 nCPUUseRate= (int)(100.0 - (fCPUIdleTime - m_fOldCPUIdleTime) / (fCPUKernelTime - m_fOldCPUKernelTime + fCPUUserTime - m_fOldCPUUserTime) *100.0); m_fOldCPUIdleTime = fCPUIdleTime; m_fOldCPUKernelTime = fCPUKernelTime; m_fOldCPUUserTime = fCPUUserTime; } return nCPUUseRate; }
2.获取内存使用率
调用GlobalMemoryStatusEx函数获取
long long CUseRate::getRam() //获取当前内存使用率 { long long ram; MEMORYSTATUSEX statex; statex.dwLength =sizeof(statex); GlobalMemoryStatusEx(&statex); ram = statex.dwMemoryLoad; return ram; }