[질문]배열 할당과 실행파일 크기
글쓴이: hultul / 작성시간: 수, 2003/09/03 - 2:53오전
'PowerPC + linux-2.4.18 + 16MB RAM' 환경의 임베디드 시스템에 애플리케이션을 추가하고 있습니다.
약 5MB 정도의 버퍼 할당이 필요한데, calloc을 이용하니 실행시 'segmentation fault'와 함께 죽어 버립니다. 이건 힙사이즈 설정이 부족하기 때문인듯 한데...암튼 배열로 바꾸었습니다.
배열로 스택에 할당했을 경우에는 동작에는 문제가 없는데, 실행파일 사이즈가 너무 커지는 현상이 발생하였습니다. 즉 거의 할당한 배열 사이즈 만큼 오브젝트 파일과 실행파일 크기가 늘어나더군여 ... ㅜㅜ
고수님들의 조언을 부탁드립니다.
5MB의 버퍼를 어떻게 잡아야 할까여?
Forums:
전역변수(초기화하느냐 마느냐)/로컬변수
전역변수로 버퍼를 할당하고 거기에 초기화 값까지 지정을
하게 되면 바이너리에 그 만큼의 공간을 잡아 먹게 됩니다
즉 컴파일 할때 바이너리에 초기화값이 반영된 메모리상태가 기록이 되며
이것이 실행될때 그대로 로딩이 되기 때문에
그렇습니다.
전역 변수로하고, 초기값을 지정하지 않으면, 상황이 다를껍니다.
아래의 글은 제가 비슷한 이유로 이것저것 해보고 작성한
글인데 문제의 가닥을 잡는데 도움이 될것입니다.
http://www.ezdoum.com/stories.php?story=02/08/24/6098584
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기