ADS 1.2 에서 컴파일시 너무 많이 걸리는 시간....
글쓴이: dropbh / 작성시간: 화, 2008/12/02 - 6:42오후
안녕하세요
현재 ADS 1.2 + cygwin 환경에서 컴파일을 시도 하고 있습니다.
헌데 include관계가 복잡하게 얽혀있는 .CPP 파일을 컴파일시 무지 막지한 시간이 걸립니다...
일든 그러한 CPP 파일들은 include하는 헤더 파일들의 양이 많고 또 그렇게 include된 헤더도 자체적으로 많은 헤더들을 include하고....
아마 중복된 헤더 파일들도 많을 겁니다.
정리를 해야 한다는 것은 알고 있는데 한두가지가 아니라 시간관계상 엄두가 안나는 상황입니다.
혹시 특별한 방법이 있을까요? 컴파일 옵션을 바꾼 다던지.....
질문이 약간 두리뭉실 하지만 단서라도 알려주시면 감사하겠습니다.
Forums:
CPU가 멀티코어면 make
CPU가 멀티코어면 make -j 옵션을 써 보세요.
..; 그래도
..; 그래도 분산컴파일러가 제일 빠르더군요..
예전에 휴대폰쪽
예전에 휴대폰쪽 일할 때, NTFS 보다는 FAT32 가 컴파일 하는대 걸린는 시간이 적었었어요.
현실적인 대안은..
좋은 하드웨어를 이용한 겁니다.
Visual Studio 라면 Increbuild 를 쓰면 되고, GCC 라면 Distgcc 또는 ccache 를 쓰시라고 하고 싶습니다.
HDD : SAS RAID 0
CPU : Xeon 3.xGHz
OS : XP 64bit or Vista
RAM : 8G ~ 16G ( RAMDISK 4G )
linux 같은 경우는 RAID, FS 등으로 잘 설정해보면 뚜렷한 성능차이가 나지만 원도우에는 그닥 뚜렷하게 차이가 안보이더군요. RAMDISK 까지는 저도 필요없어서 안쓰고 있지만 위의 방법을 잘 활용하시면 시간을 수배에서 수십배로 사이로 시간을 줄일수 있을겁니다.
그리고, 물어보신 내용을 보면 환경설정 및 패스에 관련된 것같은데 그런건 본인께서 본인환경을 잘 파악해서 해야지 별다른 뽀족한 방법이 없을 것같습니다.
Hello World.
제가 사용하는 것은
정확한 명칭은 모르겠으나,
저는 Header merge 라고 부르는 방법도 있습니다.
원리는 compile path 에 header_dir 과 같은 임의의 폴더를 만들고,
전체 소스폴더의 .h 파일을 이곳에 복사해줍니다.
그리고 include path 의 처음에 이 폴더를 잡아주면 됩니다.
그러면 전체적으로 include file search 하는 시간이 줄게 되어,
약 30000만 여개의 소스로 구성된 프로젝트에 적용 시 30% 정도까지 빌드 속도가 개선되기도 하더군요.
고려하실 부분은,
1) makefile 에서 빌드시마다 갱신된 header 파일만 다시 복사하도록,
2) 이때 동일한 이름의 header 파일은 복사하지 않도록 해줘야 엉뚱한 header 가 include 되는 문제를 막을 수 있구요.
* 물론 제일 좋은 방법은 include path 가 난잡해지지 않도록 하는 방법입니다.
댓글 달기