一、 获取系统信息
我们可以调用系统信息获取函数来获得本系统的页面大小、分配粒度的大小等信息。
系统信息获取函数:
VOID GetSystemInfo(LPSYSTEM_INFO psinf);
参数类型:
LPSYSTEM_INFO psinf 用于返回系统信息的数据结构
所包含信息:
dwPageSize:CPU页面的大小
lpMinimumApplicationAddress:进程可用的地址空间中的最小地址
lpMaximumApplicationAddress:进程可用的地址空间中的最大地址
dwAllocationGranularity:保留的地址空间区域的分配粒度
dwNumberOfProcessors:计算机中CPU的数目
dwActiveProcessorMask:用于指明那个CPU是活动的
wProcessorArchitecture:处理器结构
wProcessorLevel:更详细的处理器结构
wProcessorRevision:更详细的处理机级别
验证程序:
#include <iostream>
#include <windows.h>
using namespace std;
void main()
{
/*获取进程信息*/
LPSYSTEM_INFO systemInfo = new SYSTEM_INFO();
GetSystemInfo(systemInfo);
cout << "Page Size :" << systemInfo->dwPageSize << endl;
cout << "Allocation Granularity : " << systemInfo->dwAllocationGranularity << endl;
cout << "Minimum application address : " << systemInfo->lpMinimumApplicationAddress << endl;
cout << "Maxmum application address : " << systemInfo->lpMaximumApplicationAddress << endl;
cout << "Number of processors : " << systemInfo->dwNumberOfProcessors << endl;
cout << "Active processor mask : " << systemInfo->dwActiveProcessorMask << endl;
cout << "Processor architecture : " << systemInfo->wProcessorArchitecture << endl;
cout << "Processor level : " << systemInfo->wProcessorLevel << endl;
cout << "Processor revision : " << systemInfo->wProcessorRevision << endl;
cout << endl;
system("pause");
}
输出结果:
Page Size :4096
Allocation Granularity : 65536
Minimum application address : 00010000
Maxmum application address : 7FFEFFFF
Number of processors : 2
Active processor mask : 3
Processor architecture : 0
Processor level : 6
Processor revision : 3846
二、 查看虚拟内存状态
我们可以通过相关函数检索当前内存状态的动态信息。
获取函数:
GlobalMemoryStatus(LPMEMORYSTATUS pmst); /*内存小于4G*/
GlobalMemoryStatusEx(LPMEMORYSTATUSEX pmst); /*内存大于4G或合计交换文件大小大于4G*/
函数参数:
LPMEMORYSTATUS pmst:用于返回信息的数据结构
LPMEMORYSTATUSEX pmst:用于返回信息的数据结构
包含信息:
dwLength:参数结构体的字节数