안녕하세여.. 타락임다..^^
하하~ 재미있는 내용이군여..^^
전에 임프님이 10억개의 배열 글이 올라온걸 재미있게 봤다가, 오늘 Q&A 에 올라온 글을 봤습니다..^^
전 이론전으로 말해 볼께여..^^
10억은 1,000,000,000 으로 ","가 3개 붙는 숫자입니다. 1 바이트 짜리 타입열(byte, char)을 만들어두 1G byte, 4 바이트 짜리 타입열(integer, word)를 쓰면 4G byte의 메모리를 차지합니다.
Win32 운영 체제에서는 각각의 프로세스는 최대 4G byte 의 Flat 한 메모리를 가집니다. 정확히 말하면 4 G Byte 의 메모리를 관리할 능력이 있다는 겁니다. 거기에서 OS가 점유하는 영역이 빠집니다. 또 기본적으로 어플이 사용하는 영역이 있습니다. 그래서 실제 어플이 쓸수 있는 메모리 영역은 4 G Byte 보다 작습니다.
10억 개의 배열은 Win32 운영 체제의 지원 범위를 넘어 섭니다.
1 G byte 영역을 차지하는 배열을 만든다 해두, 역쉬 Win32 운영체제의 지원 범위를 넘어설겁니다. 그 이유는 모든 프로세스가 동일하게 4 Flat 한 4 G byte 의 메모리 영역을 가집니다. 따라서 다른 프로세스가 점유한 만큼의 메모리 만큼 사용할수 있는 메모리가 줄어듭니다.
좀더 현실적으로 실현가능한 고민을 하시는게 정신건강상 좋을겁니다.
즐푸하세여..
타락천사...^^
|