본문 바로가기

Programming/Win32&MFC&COM

Visual Studio C++ 프로젝트 빌드 속도 향상

반응형

Visual Studio로 C++ 프로젝트를 진행할 때 빌드에 시간이 많이 소요되는 경우가 있습니다.

규모가 있는 프로젝트가 잘 정리되지 않은 경우 빈번하게 발생합니다.

프로젝트 속성 변경을 통해서 C++ 프로젝트 빌드 속도를 개선하는 방법입니다.


1. 프로젝트 속성(Project Properties) 변경 방법

프로젝트 속성은 단축키 Alt + F7로 실행하거나 메뉴의 PROJECT > Project's Properties로 실행 가능합니다.

각 프로젝트 속성을 어디에 입력할지 모르는 경우 검색 방법은 다음과 같습니다.

좌측의 C/C++과 Linker 등의 하위 메뉴에 All Options라는 메뉴가 존재합니다.

상단에 보이는 검색창에 옵션을 입력하면 어디에 입력해야 되는지 표시가 됩니다.


2. 빌드 속도 최적화 설정

빌드 속도를 빠르게 하기 위해서 요약하면 다음과 같이 설정하면 됩니다.


◆ PCH(Precompiled Header) 사용

◆ 일반적으로 사용되는 시스템, 런타임, 서드파티 헤더를 PCH에 포

◆ 거의 변경되지 않는 프로젝트의 헤더를 PCH에 포함

◆ 자주 변경되는 헤더를 PCH에서 제외

◆ 정기적으로 PCH를 최신 상태로 유지될 수 있도록 확인

◆ /MP 옵션 사용

◆ /MP 옵션을 위해 /Gm 옵션 제거

◆ /MP 옵션과 #import와의 충돌 해결

◆ Linker에서 /incremental 사용

◆ Linker에서 /debug:fastlink 사용

◆ 빌드 가속을 위한 서드파티 툴 사용


이 중 핵심은 C/C++에 있는 /MP 옵션(Multi-processor Compilation) 관련 옵션입니다.

/MP를 켜고 /Gm 옵션을 지우는 것만으로도 충분히 컴파일 속도를 개선시킬 수 있습니다.

/Gm 옵션은 Enable Minimal Rebuild에서 설정 가능합니다.

그리고 잘 변경되지 않는 헤더들을 PCH 위치시키고 꾸준히 관리하는 것도 중요합니다.

Linker에서는 /INCREMENTAL 옵션(Enable Incremental Linking)을 설정합니다.

Incremental Linking은 증분 링크라고 불리는 옵션입니다.

링크 과정에서 실제 변경된 obj만 계산해서 빌드 속도를 개선시킵니다.

코드와 데이터에 패딩이 추가되기 때문에 바이너리 크기가 약간 커집니다.

다음으로 Linker에서 /debug:fastlink (Generate Debug Info)를 설정합니다.

마지막으로 서드파티 빌드 가속 프로그램을 사용하는 방법입니다.

incredibuild

Electric Cloud


C++ 프로젝트의 속성을 약간만 변경하고 PCH를 잘 관리하는 것으로 빌드 속도를 향상시킬 수 있습니다.

반응형