2005년 5월 27일 금요일

디버그 옵션에 따른 C++ 프로그램의 크기

$ cat ./inc.cpp
#include <iostream>

int main()
{
    for (int i = 0 ; i < 1000000; i++)
    {

    }

    return 0;
}

$ g++ ./inc.cpp -g -Wall -S -o ./inc.g.s
$ g++ ./inc.cpp -O0 -Wall -S -o ./inc.s

$ g++ ./inc.cpp -g -Wall -o ./inc.g.out
$ g++ ./inc.cpp -O0 -Wall -o ./inc.out

$ wc inc.s
    208     392    3311 inc.s
$ wc inc.g.s
  31507   61063  455649 inc.g.s

$ ls ./inc.out -al
-rwxrwxr-x    1 ilashman ilashman    12735  5월 27 16:03 ./inc.out
$ ls ./inc.g.out -al
-rwxrwxr-x    1 ilashman ilashman   120275  5월 27 16:02 ./inc.g.out

아주 간단한 프로그램에서 debug옵션을 넣으면 assembly code 크기는 150배,
binary 크기는 10배 커졌다.

댓글 없음:

댓글 쓰기