프로그램 크기 관리하기
글쓴이: UnShit / 작성시간: 목, 2007/10/25 - 1:21오전
프로그램의 크기를 줄이는 방법에 대해서 공부를 하고 있습니다.
먼저, 아래와 같은 코드를 컴파일 할 경우
int main() { int a = 1234; return 0; }
Visual studio 2008 에서는 프로그램 크기가 25kb 입니다.
리눅스 gcc 에서 컴파일 했을때는 11kb
윈도우 어셈블러 masm32 로 컴파일했을때는 1.5kb 나왔습니다.
visual studio 컴파일러로 만든 프로그램을 strip 하여도 크기가 안 줄었습니다.
리눅스 gcc 는 2.6kb 정도로 줄었습니다.
debug 해보면, vs 로 만든프로그램은 stack 사이즈를 0CCh 만큼 잡고,
size 해보면 code 영역을 엄청나게 많이 쓰고 있습니다.
궁금한 것은, 왜 이렇게 똑같은 프로그램인데 크기가 차이나는 것일까요?
비주얼 스튜디오를 이용하더라도 프로그램 크기를 줄일수 있는 방법은 없나요?
Forums:
사용하는 C Library 에
사용하는 C Library 에 따라서 구현체의 크기가 달라질 수 있습니다. 그리고 Dynalic Linking 을 했냐 Static Linking 을 했냐에 따라서 결과는 천차만별입니다. 디버그 심볼에 따른 용량 차이도 있구요. 결국 아무리 조건을 같게 둔다고 해도 같은 용량이 나오기는 힘듭니다..
댓글 달기