Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[7470] Re:비효율적이긴 하지만 가능합니다.
박지훈.임프 [cbuilder] 2252 읽음    2001-09-27 23:11
임프랍니다.

아래 분들의 말씀처럼, 배열을 그정도로 할당하는 것은 비효율적입니다.
하지만 기술적으로 아예 불가능하지는 않습니다.

함수 내에서 선언한 배열은 함수 실행시에 스택에 할당됩니다. 그러므로 배열의 크기 한계는 현재 프로세스의
스택의 크기와 밀접한 관계가 있습니다. 배열이 너무 크게 되면 스택 오버플로우가 발생하는 것은 이것
때문입니다.

이 프로세스의 스택 크기(정확하게는 디폴트 쓰레드의 스택)는 프로젝트 옵션의 링커 탭에서 정해줄 수
있는데, 디폴트로는 $00100000, 즉 1048576바이트, 1메가 바이트입니다. 이것을 늘려주면 당연히 배열크기의
한계도 같이 늘어납니다.

님께서 테스트할 때 1,000,000개까지는 에러가 발생하지 않은 것은 현재 스택의 크기가 1,048,576바이트로서
그 한계 내의 수치이기 때문입니다. 만약 배열을 10억개로 만들 필요가 있다면, 1,000,000,000이므로 대략
1GB 정도의 스택이 필요합니다. 델파이의 IDE에서는 16메가 이상은 설정이 되지 않으므로, 프로젝트의
.dof 파일을 열어서 직접 MaxStackSize값을 설정해주어야 합니다.

단, 1기가의 메모리를 할당하는 작업을 하게 되면 피시에 장착된 실제 메모리의 양을 넘어갈 것이므로,
하드 스와핑으로 인해 엄청난 버벅거림이 따르게 됩니다.

대신, 디폴트쓰레드의 스택의 크기를 조정하게 되면 현재 프로젝트에 속한 모든 쓰레드들의 스택크기가
함께 변화합니다. 스택을 지나치게 많이 사용하게 되면 쓰레드를 생성할 수 있는 갯수의 한계도 그만큼
줄어들게 됩니다.

역시, 메모리는 유한하므로(Win32에서 아무리 4GB가 커보여도 결국 유한함) 아껴쓰는 것이 좋습니다.
하지만 현재 프로젝트가 쓰레드를 동적으로 증가해가면서 많이 쓰지 않고, 메모리를 사용에 있어서 별다른
주의가 필요없을 정도로 단순하다면 엄청난 크기를 써도 상관은 없겠습니다.

그럼 이만...


이상헌 님이 쓰신 글 :
: 변수를 배열로 잡을수 잇는 최대 크기는 얼마 인가여?
:
: test : array[1000000] of byte;
:
: byte 일경우 1,000,000는 에러가 나지 않습니다. 10,000,000는 에러가 납니다.
:
: integer일경우는 생성할수잇는 최대 크리가 당연히 반으로 줄더군여....
:
: 최대... 10억개의 배열이 필요합니다....
:
: 어떻케 하면 좋을까요?

+ -

관련 글 리스트
7462 [질문]배열의 크기는? 이상헌 1394 2001/09/27
7476     전 이론전으로 말해 볼께여..^^ 타락천사 1381 2001/10/07
7472     Re:[질문]배열의 크기는? 지나가는 사람 1339 2001/09/27
7470     Re:비효율적이긴 하지만 가능합니다. 박지훈.임프 2252 2001/09/27
7467     10억개의 유일한 수를 생성한다 @@a ???!!! 박정모 1365 2001/09/27
7464     Re:[질문]배열의 크기는? 박정모 1425 2001/09/27
7463     Re:[질문]배열의 크기는? 류종택 1457 2001/09/27
7465         Re:Re:[질문]배열의 크기는? 답변 감솨...... 이상헌 2623 2001/09/27
7466             Re:Re:Re:[질문]배열의 크기는? 답변 감솨...... 류종택 1471 2001/09/27
7469                 Re:Re:Re:Re:[질문]배열의 크기는? 답변 감솨...... 최보현.U&I 1800 2001/09/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.