관리 메뉴

MuTa

대용량 메모리 할당 Massive Memory Alloc 본문

MFC-C++

대용량 메모리 할당 Massive Memory Alloc

MuTa 2016. 5. 27. 09:02

32bit app에서 메모리 할당 하는 것은 최대 4GB

허나 실질 할당 가능 부분은 2GB 이하이다.

프로젝트>설정>링커>시스템> 주소 처리를 사용으로 바꿔야 한다.

3GB 까지 가능하다고 한다.

이상 쓰려면 VirtualAlloc 이나 MMF 사용하는 것이 좋다.

 

허나 64bit 프로그램 64bit OS 환경에서 다음과 같이 할당 가능하다.

 

#define GB 1073741824 //1024*1024*1024

 

SIZE_T  BigSize  = GB*(SIZE_T)8;   //할당 크기 8GB

BYTE* pByte = new BYTE[BigSize];

 

for (SIZE_T i = 0; i < BigSize ; i++)

pByte[i] = i%255;

 

for (SIZE_T i = 0; i < BigSize ; i++)

if ((i % 100000) == 0) TRACE(_T("%lld %d \n"), i, pByte[i]);

 

delete[] (pByte);

pByte = NULL;

 

 스샷은 32GB

 PC 에서 25GB 할당 결과 이다.

 

할당 전

 





할당 상태






해제 후



  

TRACE 문으로 안쪽 내역 확인 가능

'MFC-C++' 카테고리의 다른 글

TIL-rapidJson - 191225  (0) 2019.12.25
NuGet Package  (0) 2016.06.09
C++ 11 핵심  (0) 2016.05.16
시스템 현재 코어 개수 구하기  (0) 2016.05.13
폴더내 파일 리스트 가져오기  (0) 2016.05.13