메모리 정보 가져오기

반응형

메모리 정보 가져오기

메모리를 자주 사용하는 프로그램의 경우, 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);

TAGS.

Comments