C++内存管理

来源:互联网 发布:服务端数据为空淘宝 编辑:程序博客网 时间:2024/06/01 08:27
#include<Windows.h>#include<iostream>using namespace std;void main(){MEMORYSTATUS ms;       //存储状态LPVOID pVir;LPVOID pMal;GlobalMemoryStatus(&ms);cout<<"分配存储前的存储状态"<<endl;cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;cout<<"现在分配32M虚拟存储和16M物理存储"<<endl;pVir=VirtualAlloc(NULL,1024*1024*32,MEM_COMMIT|MEM_RESERVE,PAGE_READWRITE);if(!pVir){cout<<"虚拟存储分配失败"<<endl;}pMal=malloc(1024*1024*16);GlobalMemoryStatus(&ms);cout<<"分配存储后的存储状态"<<endl;cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;cout<<"现在释放32M虚拟存储和16M物理存储"<<endl;if(!VirtualFree(pVir,0,MEM_RELEASE)){cout<<"释放虚拟存储失败"<<endl;}free(pMal);GlobalMemoryStatus(&ms);cout<<"释放存储后的存储状态"<<endl;cout<<"存储状态长度"<<ms.dwLength<<"Bytes"<<endl;cout<<"本地存储"<<ms.dwMemoryLoad<<"%"<<endl;cout<<"全部物理存储"<<ms.dwTotalPhys/(1024*1024)<<"MB"<<endl;cout<<"全部页文件"<<ms.dwTotalPageFile/(1024*1024)<<"MB"<<endl;cout<<"可用页文件"<<ms.dwAvailPageFile/(1024*1024)<<"MB"<<endl;cout<<"全部虚拟存储"<<ms.dwTotalVirtual/(1024*1024)<<"MB"<<endl;cout<<"可用虚拟存储"<<ms.dwAvailVirtual/(1024*1024)<<"MB"<<endl;}

0 0
原创粉丝点击