Compile cache라는 ccache가 있다.

http://ccache.samba.org/

내 아직까지 이놈의 존재를 의식하지 못했다는 것이 새삼 바보스럽다는 느낌까지 든다.

원리는 간단하다. ccache 를 gcc 로 symbolic link를 해둔다. 그리고 진짜 gcc 보다 먼저 발견되도록 PATH의 앞부분에 둔다.

gcc -o prog.o -c prog.c

라는 명령이 오면, ccache가 그것을 받을 테고, 이놈은 gcc -E prog.c 를 수행하여 나오는 결과, 즉 전처리 결과의 MD5 값을 구하고, 이 값과 gcc -c prog.c 하여 만들어진 오브젝트 파일을 쌍으로 저장해 둔다.

만약 다음 번에 똑같은 명령이 수행되었는데, 전처리 결과가 같으면, 저장해둔 오브젝트 파일을 단지 복사만하는 개념이다.

이 얼마나 단순한가. 이것만으로 우리 프로젝트 빌드 속도가 25분에서 5분으로 줄어든다.

여기서 느끼는 느낌은...

1. 내가 너무 상상력을 발휘 못해오지 않았나.
2. PCH(Pre-Compiled Header)라는 gcc 3.4이후에나 들어온 놈에 너무 고착된 사고를 해오지 않았나.
3. 심지어 Compiler Server 라는 아직 구현 안된 놈에 생각의 나래를 빼앗기지 않았나.
4. 그리고, 내가 다른 사람들의 답글을 그렇게 자세히 안보았었나...

싶더라...

http://bbs.kldp.org/viewtopic.php?t=29103

이미 2003년 12월달 알만한 것이었음에도... 이제야 알다니... 자그마치 2년! 후~아..!
  1. june8th 2005.11.18 00:36

    어허 이런 코인씨던쓰가..
    나도 어제부터 이거 쓴다오...

  2. 주인 2005.11.18 02:33

    full build가 1/5로 확 줄었으..

  3. 준호 2006.01.05 16:31

    Kernel compile 시
    사용 안할경우6분 17초
    사용 할 경우 2분 8초

    Very Good~!!!

  4. 주인 2006.01.06 00:56

    좋아요 좋아... 개발자 피씨의 사양이 느리면 딴짓한다던데... 이건..

+ Recent posts