如何获取windows系统资源
来源:互联网 发布:姐妹团推广 网络诈骗 编辑:程序博客网 时间:2024/05/29 23:45
- 总的虚拟内存:
#include "windows.h"
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
DWORDLONG totalVirtualMem = memInfo.ullTotalPageFile;
注:名称“TotalPageFile”是有些误导这里。 在现实中这个参数给“虚拟内存大小”,这是交换文件,另加安装的RAM的大小。
- 目前使用的虚拟内存:
相同的代码,如“总的虚拟内存”,然后
DWORDLONG virtualMemUsed = memInfo.ullTotalPageFile - memInfo.ullAvailPageFile;
- 目前使用的虚拟内存的当前进程:
#include "windows.h"
#include "psapi.h"
PROCESS_MEMORY_COUNTERS_EX pmc;
GetProcessMemoryInfo(GetCurrentProcess(), &pmc, sizeof(pmc));
SIZE_T virtualMemUsedByMe = pmc.PrivateUsage;
- 总物理内存(RAM):
相同的代码,如“总的虚拟内存”,然后
DWORDLONG totalPhysMem = memInfo.ullTotalPhys;
- 目前使用的物理内存:
相同的代码,如“总的虚拟内存”,然后
DWORDLONG physMemUsed = memInfo.ullTotalPhys - memInfo.ullAvailPhys;
- 目前使用的物理内存的当前进程:
在“虚拟内存相同的代码目前使用的当前进程”,然后
SIZE_T physMemUsedByMe = pmc.WorkingSetSize;
- 目前使用的CPU:
#include "TCHAR.h"
#include "pdh.h"
static PDH_HQUERY cpuQuery;
static PDH_HCOUNTER cpuTotal;
void init(){
PdhOpenQuery(NULL, NULL, &cpuQuery);
PdhAddCounter(cpuQuery, L"\\Processor(_Total)\\% Processor Time", NULL, &cpuTotal);
PdhCollectQueryData(cpuQuery);
}
double getCurrentValue(){
PDH_FMT_COUNTERVALUE counterVal;
PdhCollectQueryData(cpuQuery);
PdhGetFormattedCounterValue(cpuTotal, PDH_FMT_DOUBLE, NULL, &counterVal);
return counterVal.doubleValue;
}
- 目前使用的CPU的当前进程:
#include "windows.h"
static ULARGE_INTEGER lastCPU, lastSysCPU, lastUserCPU;
static int numProcessors;
static HANDLE self;
void init(){
SYSTEM_INFO sysInfo;
FILETIME ftime, fsys, fuser;
GetSystemInfo(&sysInfo);
numProcessors = sysInfo.dwNumberOfProcessors;
GetSystemTimeAsFileTime(&ftime);
memcpy(&lastCPU, &ftime, sizeof(FILETIME));
self = GetCurrentProcess();
GetProcessTimes(self, &ftime, &ftime, &fsys, &fuser);
memcpy(&lastSysCPU, &fsys, sizeof(FILETIME));
memcpy(&lastUserCPU, &fuser, sizeof(FILETIME));
}
double getCurrentValue(){
FILETIME ftime, fsys, fuser;
ULARGE_INTEGER now, sys, user;
double percent;
GetSystemTimeAsFileTime(&ftime);
memcpy(&now, &ftime, sizeof(FILETIME));
GetProcessTimes(self, &ftime, &ftime, &fsys, &fuser);
memcpy(&sys, &fsys, sizeof(FILETIME));
memcpy(&user, &fuser, sizeof(FILETIME));
percent = (sys.QuadPart - lastSysCPU.QuadPart) +
(user.QuadPart - lastUserCPU.QuadPart);
percent /= (now.QuadPart - lastCPU.QuadPart);
percent /= numProcessors;
lastCPU = now;
lastUserCPU = user;
lastSysCPU = sys;
return percent * 100;
}
- 如何获取windows系统资源
- 如何获取Linux系统资源
- windows 系统资源获取的c++ 方法
- 如何获取Mac OS X系统资源
- LoadRunner下如何监控Windows系统资源
- windows获取系统资源使用状况 和 放弃cpu
- android 获取系统资源
- 获取系统资源的方法
- Windows系统资源监控
- loadrunner监控windows系统资源
- Loadrunner如何监听系统资源
- 关于获取系统资源的输出
- 如何调用MFC中的函数打开一个系统资源面板,获取文件
- 四招释放Windows系统资源
- Loadrunner controller监视windows系统资源
- Windows Phone7 开发 使用系统资源
- Windows系统资源性能常用计数器
- 【性能测试】-Windows系统资源监控
- 第三周——基于对象的程序设计——三角形类(3)多文件组织
- 如何获取Linux系统资源
- 给需求做一个DNA检测
- DES加密算法
- 时间选择器(滚动选择器)的优化和修改
- 如何获取windows系统资源
- sass初识笔记
- QAxWidget调用JS(使用IE内核)
- Incoming conferences
- YTUOJ-重复字符串
- memset 函数初始化用法
- 如何使用递归实现归并排序
- HTTP Error 500.19 – Internal Server Error – 0x80070021 (IIS 8.5)
- 【BZOJ1758】【Wc2010】重建计划 分数规划+树分治单调队列check