Windows系统内存使用查看
来源:互联网 发布:菲凡软件 编辑:程序博客网 时间:2024/05/29 13:39
函数介绍
GlobalMemoryStatus
、GlobalMemoryStatusEx
用来获得当前可用的物理和虚拟内存信息。其中GlobalMemoryStatus
获取单根内存条状态,GlobalMemoryStatusEx
获取多根内存条状态。
GlobalMemoryStatusEx
的定义为:
BOOL WINAPI GlobalMemoryStatusEx(_Inout_ LPMEMORYSTATUSEX lpBuffer);
MEMORYSTATUSEX的定义为:
typedef struct _MEMORYSTATUSEX{ DWORD dwLength; //本结构长度 DWORD dwMemoryLoad; //已用内存百分比 DWORDLONG ullTotalPhys; //物理内存总量 DWORDLONG ullAvailPhys; //可用物理内存 DWORDLONG ullTotalPageFile; //交换文件总的大小 DWORDLONG ullAvailPageFile; //交换文件中空余部分大小 DWORDLONG ullTotalVirtual; //用户可用地址空间 DWORDLONG ullAvailVirtual; //当前空闲的地址空间 DWORDLONG ullAvailExtendedVirtual; //保留值,设为0} MEMORYSTATUSEX, *LPMEMORYSTATUSEX;
测试代码
#include <iostream>#include <windows.h>using namespace std;int main(){ MEMORYSTATUSEX memStatus; memStatus.dwLength = sizeof (memStatus); GlobalMemoryStatusEx (&memStatus); cout << "内存初始状态:" << endl; cout << "内存繁忙程度 = " << memStatus.dwMemoryLoad << endl; cout << "总物理内存 = " << double(memStatus.ullTotalPhys) /(1024*1024) << "M" << endl; cout << "可用物理内存 = " << double(memStatus.ullAvailPhys) /(1024*1024) << "M" << endl; cout << "总页文件 = " << double(memStatus.ullTotalPageFile) /(1024*1024) << "M" << endl; cout << "可用页文件 = " << double(memStatus.ullAvailPageFile) /(1024*1024) << "M" << endl; cout << "总进程空间 = " << double(memStatus.ullTotalVirtual) /(1024*1024) << "M" << endl; cout << "可用进程空间 = " << double(memStatus.ullAvailVirtual) /(1024*1024) << "M" << endl << endl; system("pause"); return 0;}
输出结果
VS2012 Win7 64位 x64编译
内存初始状态:内存繁忙程度 = 43总物理内存 = 8066.03M可用物理内存 = 4541.91M总页文件 = 8064.21M可用页文件 = 4174.58M总进程空间 = 8.38861e+006M可用进程空间 = 8.3886e+006M
VS2012 Win7 64位 Win32编译
内存初始状态:内存繁忙程度 = 43总物理内存 = 8066.03M可用物理内存 = 4518.97M总页文件 = 8064.21M可用页文件 = 4148.94M总进程空间 = 2047.88M可用进程空间 = 2034.26M
内存消耗坚持
当然,上述函数可用坚持内存的消耗,代码如下:
#include <iostream>#include <windows.h>using namespace std;int main(){ MEMORYSTATUSEX memStatus; memStatus.dwLength = sizeof (memStatus); GlobalMemoryStatusEx (&memStatus); char *dynamic=new char[100*1024*1024]; MEMORYSTATUSEX memStatusData; memStatusData.dwLength = sizeof (memStatusData); GlobalMemoryStatusEx (&memStatusData); cout << "内存消耗情况:" << endl; cout << "消耗物理内存 = " << double(memStatus.ullAvailPhys - memStatusData.ullAvailPhys) / (1024*1024) << "M" << endl; cout << "消耗页文件 = " << double(memStatus.ullAvailPageFile - memStatusData.ullAvailPageFile) / (1024*1024) << "M" << endl; cout << "消耗进程空间 = " << double(memStatus.ullAvailVirtual - memStatusData.ullAvailVirtual) / (1024*1024) << "M" << endl << endl; system("pause"); return 0;}
输出结果
内存消耗情况:消耗物理内存 = 98.4102M消耗页文件 = 100.395M消耗进程空间 = 100.004M
0 0
- Windows系统内存使用查看
- Windows系统内存信息查看
- windows查看进程内存使用记录
- linux系统下查看内存使用情况
- Linux系统负载、内存使用情况查看
- 查看Linux系统内存 CUP 使用情况
- 查看系统CPU,内存等使用情况
- linux系统如何查看内存使用情况
- linux系统如何查看内存使用情况
- Linux系统如何查看内存使用情况
- 查看系统版本和内存使用情况
- 查看linux系统内存使用情况
- Linux系统信息查看命令大全(查看内存使用情况)
- 查询linux系统中空闲内存/内存使用状态查看/剩余内存查看
- 查询linux系统中空闲内存/内存使用状态查看/剩余内存查看
- Windows查看内存信息
- 优化windows系统内存使用九秘招
- 查看系统内存信息
- Android最佳性能实践(四)——布局优化技巧
- 已生成用于更新的 ResultSet
- 三种方法实现Android定制RadioButton样式
- Mysql 错误解决:ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet'
- String.split和StringUtils.split的区别
- Windows系统内存使用查看
- java.util.Date和java.sql.Date的区别及应用
- QNX6.6下开启SSH服务步骤
- 求M的N次方的最后三位
- 【黑马程序员】-c函数
- UVa 10305 Ordering Tasks
- iOS将长方形的图片截成正方形显示
- 混合
- java 线程栈信息