2016. 3. 10. 11:10
[IT 노트]
작은 프로젝트에서는 큰 의미가 없지만 파일수가 많은 큰 프로젝트에서는 컴파일 시간이 지루하기만 하다.
내가 개발하고 있는 트레이딩툴 역시 파일수가 100개를 넘어가면서 컴파일 시간이 5분 이상 걸린다.
cpp 파일 하나하나를 obj 파일로 변경하는 것이므로 멀티코어 CPU 에서는 각각의 CPU 에 하나씩 파일을 할당해주는 방식으로 컴파일을 진행하면 코어수에 비례해서(이론적으로) 컴파일 속도가 빨라진다. 단 링크작업은 하나의 CPU 에서 수행하므로 이런 효과를 낼 수는 없다.
VS2005 sp1 과 VS2008 이상부터는 이런방식의 멀티코어 활용 컴파일을 지원한다.
내가 쓰고있는 VS2008 한글판을 기준으로는 몇 가지 간단한 설정으로 실현시킬 수 있다.
1. 프로젝트의 속성 -> 구성 속성 -> C/C++ -> 코드 생성 -> 최소 다시 빌드 기능 -> 아니오
2. 프로젝트의 속성 -> 구성 속성 -> C/C++ -> 미리 컴파일된 헤더 -> 미리 컴파일된 헤더 만들기/사용 -> 미리 컴파일된 헤더 사용
3. 프로젝트의 속성 -> 구성 속성 -> C/C++ -> 명령줄 -> 추가 옵션 -> '/MP' 추가
이렇게 설정 후 컴파일을 진행하면 현재 CPU 의 코어를 모두 활용한 컴파일이 가능하다.
잘 되는지 확인은 작업관리자의 프로세스에서 cl 프로세스가 코어수만큼 떠있는지 체크하면 된다.