상세 컨텐츠

본문 제목

[C++] 미리 컴파일된 헤더(precompiled Header)?

c++

by 뿡뿡이형 2019. 8. 31. 15:03

본문

precompiled Header란 프로젝트가 커짐에 따라 컴파일 시간을 줄이기 위해 자주 변경되지 않는 긴 소스를 미리 컴파일해두고 컴파일 결과를 별도의 파일에 저장해 다시 컴파일하지 않는 것이다.

C++에서 windows.h같이 큰 파일을 계속 컴파일하면 컴파일 할 때마다 굉장히 오랜 시간이 걸린다. 그러니 windows.h같이 변경할 일이 별로 없는 파일들을 미리 파싱 해두면 컴파일 속도를 줄일 수 있다. 

사용법은 이 블로그에 잘 설명되어 있다  https://noirstar.tistory.com/12

 

[C/C++] 미리 컴파일된헤더(Precompiled Header)? 컴파일 시간을 줄여봅시다!

미리컴파일된 헤더(Precomplied Header) 란? 말그대로 헤더를 미리 컴파일 해두는겁니다 . 프로그램을 만들다보면 어쩔수없이 프로그램의 몸집은 점점 불어가죠 프로그램이 커지면 전처리기가 컴파일해야될 헤더도..

noirstar.tistory.com

장/단점

장점은 잘 쓰면 컴파일 속도가 줄어 작업 능률이 오를것이다.

단점은 잘 못쓸 경우긴 하지만 미리 컴파일할 헤더 파일이 자주 변경하게 되면 오히려 컴파일 시간이 더 오래 걸린다는 것이다. PCH(precompiled Header) 파일을 만들 때, 20%~200%가량 속도가 느리다고 한다.

여담

언리얼에는 IWYU라는 모델을 이용해 PCH(precompiled Header) 파일을 관리한다는 듯하다.

https://docs.unrealengine.com/ko/Programming/UnrealBuildSystem/IWYUReferenceGuide/index.html

 

IWYU 레퍼런스 가이드

Include-What-You-Use, IWYU, 사용하는 것만 포함시키는 종속성 모델을 사용하도록 변경된 UE4 코드베이스 개요입니다.

docs.unrealengine.com

미리 컴파일된 헤더를 잘 사용해 작업 능률을 높여보자

'c++' 카테고리의 다른 글

push_back과 emplace_back의 차이  (0) 2019.12.04

관련글 더보기