#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
__int64 CompareFileTime(FILETIME time1, FILETIME time2)//转换为整数时间
{
__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;
__int64 b = time2.dwHighDateTime << 32 | time2.dwLowDateTime;
return (b - a);
}
int _tmain(int argc, CHAR* argv[])
{
HANDLE hEvent;
BOOL res;
FILETIME preidleTime;
FILETIME prekernelTime;
FILETIME preuserTime;
FILETIME idleTime;
FILETIME kernelTime;
FILETIME userTime;
res = GetSystemTimes(&idleTime, &kernelTime, &userTime);
preidleTime = idleTime;
prekernelTime = kernelTime;
preuserTime = userTime;
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);// 初始值为 nonsignaled ,并且每次触发后自动设置为nonsignaled
while (1){
WaitForSingleObject(hEvent, 1000); //等待500毫秒
res = GetSystemTimes(&idleTime, &kernelTime, &userTime);
int idle = CompareFileTime(preidleTime, idleTime);
int kernel = CompareFileTime(prekernelTime, kernelTime);
int user = CompareFileTime(preuserTime, userTime);
float cpu = (kernel + user - idle) *100.0 / (kernel + user);
float cpuidle = (idle)*100.0 / (kernel + user);
cout << "CPU利用率:" << cpu << "%" << " CPU空闲率:" << cpuidle << "%" << endl;
preidleTime = idleTime;
prekernelTime = kernelTime;
preuserTime = userTime;
}
return 0;
}
#include <stdio.h>
#include <windows.h>
#include <iostream>
using namespace std;
__int64 CompareFileTime(FILETIME time1, FILETIME time2)//转换为整数时间
{
__int64 a = time1.dwHighDateTime << 32 | time1.dwLowDateTime;
__int64 b = time2.dwHighDateTime << 32 | time2.dwLowDateTime;
return (b - a);
}
int _tmain(int argc, CHAR* argv[])
{
HANDLE hEvent;
BOOL res;
FILETIME preidleTime;
FILETIME prekernelTime;
FILETIME preuserTime;
FILETIME idleTime;
FILETIME kernelTime;
FILETIME userTime;
res = GetSystemTimes(&idleTime, &kernelTime, &userTime);
preidleTime = idleTime;
prekernelTime = kernelTime;
preuserTime = userTime;
hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);// 初始值为 nonsignaled ,并且每次触发后自动设置为nonsignaled
while (1){
WaitForSingleObject(hEvent, 1000); //等待500毫秒
res = GetSystemTimes(&idleTime, &kernelTime, &userTime);
int idle = CompareFileTime(preidleTime, idleTime);
int kernel = CompareFileTime(prekernelTime, kernelTime);
int user = CompareFileTime(preuserTime, userTime);
float cpu = (kernel + user - idle) *100.0 / (kernel + user);
float cpuidle = (idle)*100.0 / (kernel + user);
cout << "CPU利用率:" << cpu << "%" << " CPU空闲率:" << cpuidle << "%" << endl;
preidleTime = idleTime;
prekernelTime = kernelTime;
preuserTime = userTime;
}
return 0;
}