본문 바로가기
C & C++/C & C++

현재 메모리 정보 얻어오기

by izen8 2011. 11. 17.
반응형

현재 메모리 정보 얻어오기

           [ 메모리 정보 얻어오기  ]
 
 

메모리를 자주 사용하는 프로그램의 경우, out of memory를 일으키지 않도록 하기위해, 메모리를 체크해야합니다. 꼭 이럴 경우가 아니더라도, 기본적으로, 메모리의 이용은 어플리케이션의 부피가 커질수록 문제가 되겠죠. 여기서 API함수를 이용하여, 메모리의 상태를 얻어오는 방법을 알아보겠습니다.

 
 
 

먼저 사용될 API함수와 그 구조를 알아봅시다.

 

void WINAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer);

MEMORYSTATUS는 아래와 같은 구조를 갖게 됩니다.

 

DWORD

dwLength

32 고정

DWORD

dwMemoryLoad

사용할수 있는 메모리비율

DWORD

dwTotalPhys

물리적 메모리양

DWORD

dwAvailPhys

물리적 사용가능한 메모리양

DWORD

dwTotalPageFile

가상 메모리양

DWORD

dwAvailPageFile

가상 사용가능한 메모리양

DWORD

dwTotalVirtual

전체(물리,가상) 메모리양

DWORD

dwAvailVirtual

전체(물리,가상) 사용가능한 메모리양

 

 

그러므로, 아래와 같이 코딩을 하면, 현재 상태의 메모리를 체크할 수 있습니다.

 

 

MEMORYSTATUS memoryStatus;
GlobalMemoryStatus(&memoryStatus);

CString memoryInfo;
memoryInfo.Format("%uBYTE 전체 메모리사용가능", memoryStatus.dwAvailVirtual);

반응형

댓글