매우 큰 사이즈의 배열을 다루는 프로그램 작성 전략.. ?

phantom7026의 이미지

큰 사이즈의 배열을 다뤄야 하는 프로그램을 작성할 때 마다 메모리 부족 때문에 어려움을 겪습니다.
크기는 수~수십 억 x 수십 정도 되는 int 형 배열인데, 컴퓨터가 힘들어 하다가 먹통이 되네요.

배열 전체가 동시에 로드되어야 하는 건 아닌데.. 파일 입출력 등으로 해결할 수 있을까요 ?

익명 사용자의 이미지

메모리에 넣기 힘들 정도로 큰 데이터를 다룰 때는 항상 파일에서 부분적으로 읽어와서 처리하는 로직을 따로 구성해야 합니다.

shint의 이미지

1. 윗분 말씀대로 파일맵 (DB) 을 사용할 수 있습니다.

2. __int64 와 같은 큰 변수를 만들 수 있습니다. 첨부한 예제소스를 참고해보세요.

3. CreateFileMapping() MapViewOfFile() 과 같은 함수가 있습니다. 윈도우 API 책을 참고해보세요.
http://interest.pe.kr/bbs/view.php?id=private_memo&no=68

4. 네트워크 통신으로 클라우드의 OpenAPI로 원격저장을 할 수 있습니다.

5. USB 나 CD. TAPE 로 대용량 시스템을 만들어서. 저장할 수 도 있습니다.

6. int data[i] 배열에 int * pa[i]; 에 포인터를 사용한 2중 배열을 사용할 수 도 있어 보입니다.

댓글 첨부 파일: 
첨부파일 크기
Package icon test __int64에 큰 변수값 만들기.zip16.39 KB

----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.

매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.

각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com