如何获取虚拟内存的总量,以及某个程序虚拟内存的使用情况,以及当前系统物理内存的总量以及使用情况
RT,
1. 需要取得当前虚拟内存的总量,以及某个application的虚拟内存使用情况,如果这个application的实例是多个,则使用情况是所有实例占用虚拟内存的总和.
2. 获取当前系统的物理内存,以及总的物理内存的使用情况
请高手帮帮忙,谢谢
------解决方案--------------------可以使用WMI来获得这些系统信息。你在msdn中查WMI的资料。
------解决方案--------------------call
void GlobalMemoryStatus(
LPMEMORYSTATUS lpBuffer
);
api
typedef struct _MEMORYSTATUS
{ DWORD dwLength;
DWORD dwMemoryLoad;
SIZE_T dwTotalPhys;
SIZE_T dwAvailPhys;
SIZE_T dwTotalPageFile;
SIZE_T dwAvailPageFile;
SIZE_T dwTotalVirtual;
SIZE_T dwAvailVirtual;
} MEMORYSTATUS, *LPMEMORYSTATUS;
------解决方案--------------------上面是取得全局内存的函数取得某一进程用
BOOL GetProcessMemoryInfo(
HANDLE Process,
PPROCESS_MEMORY_COUNTERS ppsmemCounters,
DWORD cb
);
typedef struct _PROCESS_MEMORY_COUNTERS { DWORD cb; DWORD PageFaultCount; SIZE_T PeakWorkingSetSize; SIZE_T WorkingSetSize; SIZE_T QuotaPeakPagedPoolUsage; SIZE_T QuotaPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage; SIZE_T PagefileUsage; SIZE_T PeakPagefileUsage;
} PROCESS_MEMORY_COUNTERS, *PPROCESS_MEMORY_COUNTERS;