응용프로그램 용량 증가 질문?
글쓴이: ssik425 / 작성시간: 목, 2005/06/30 - 9:07오전
- 현재 작성되어 프로그램을 수정 중입니다. 제가 작성한게 아니라 다른분이 하신걸 엉겹결에 수정하게 되었지요.. :oops:
그런데 이상한 일이 발생 했습니다. 전에부터 그랬는지는 확실하지 않지만,, 오프젝트 파일의 용량이 너무 크고 실행파일의 용량도 너무 비대합니다.
예를 들어 view.c라는 파일이 있는데 28k 정도(약 800라인)인데.. 이걸 아래와 같은 옵션으로 컴파일 하면
Quote:
gcc -c -g -Wall -DDEBUG -I. -I/usr/include
view.o(오브젝트파일)의 용량이 갑자기 3.9M가 되어 버립니다.
소스가 조금 길다면 이해를 하겠는데 . 도무지 알수가 없네요... 이파일 때문에 전체적인 실행파일의 크기가 (약 4M)증가하는 것 같은데..
혹 이런 경우 아시는분 계신가요? 답변 부탁드립니다.
Forums:
추가적으로 현재 FC4를 사용중이고 gcc는 4.1 버전입니다. 그런데.
추가적으로 현재 FC4를 사용중이고 gcc는 4.1 버전입니다. 그런데.. Redhat9에서도 동일한 문제가 나오네요..
개발자들의 궁극적 비전은 ?
-g 옵션을 빼 보세요.
-g 옵션을 빼 보세요.
--
익스펙토 페트로눔
gcc -c -O2 -I. -I/usr/include 와 같이 해도 동
gcc -c -O2 -I. -I/usr/include 와 같이 해도 동일합니다. 용량이 증가하는 주요원인은 뭐가 있을까요?
개발자들의 궁극적 비전은 ?
-E 옵션으로 전처리 후의 코드를 살펴보세요.
-E 옵션으로 전처리 후의 코드를 살펴보세요.
strip 으로 각종 심볼을 제거하면 많이 줄어들겁니다. (특히, -g
strip 으로 각종 심볼을 제거하면 많이 줄어들겁니다. (특히, -g 로 디버그 정보가 잔뜩 들어갔다면 1/10 정도로 줄어드는 경우도 있었습니다)
같은 소스라면 크게 차이가 나지 않을 듯 싶은데, 크기를 줄이고자 한다면 -Os 로 컴파일 하는 것도 괜찮겠지요.
[b]progcom[/b] 님 답변 고맙습니다. 하지만, 이미 str
progcom 님 답변 고맙습니다.
하지만, 이미 strip 이나 -Os 옵션등은 이미 시도해본 뒤입니다. :oops:
용량에 아무런 변화도 없습니다.
doldori 님 의견 처럼 전처리를 거쳐서 비교해 보아도 역시나 소스파일과의 큰 용량 차이는 없는데도 불구하고 컴파일시 3.9M로 용량이 늘어 납니다.
혹시나 하는 마음에 Assem으로 변화하여 보았는데 별다른 용량의 증가는 보이지 않습니다. 다만 이걸 오브젝트 파일로 컴파일 하면 그때부터 용량이 커지네요..
전체 오브젝트 용량(view.o제외한)이 400K정도인데 view.o 의 용량이 3.9M이니 참.. 난감하네요... view.o만 용량을 줄일 수 있다면 500k정도로 실행파일을 낮출 수 있을텐데... :evil:
개발자들의 궁극적 비전은 ?
- 자문자답이네요... ^^소스내부에 설정된 변수가 문제였습니다.
- 자문자답이네요... ^^
소스내부에 설정된 변수가 문제였습니다. 다음과 같이 짜여져 있더군요...
int num[100000];
설마 했는데 이런 코드를 작성 했을 줄이야 ㅠ.ㅠ
개발자들의 궁극적 비전은 ?
댓글 달기