precompiled Header란 프로젝트가 커짐에 따라 컴파일 시간을 줄이기 위해 자주 변경되지 않는 긴 소스를 미리 컴파일해두고 컴파일 결과를 별도의 파일에 저장해 다시 컴파일하지 않는 것이다.
C++에서 windows.h같이 큰 파일을 계속 컴파일하면 컴파일 할 때마다 굉장히 오랜 시간이 걸린다. 그러니 windows.h같이 변경할 일이 별로 없는 파일들을 미리 파싱 해두면 컴파일 속도를 줄일 수 있다.
사용법은 이 블로그에 잘 설명되어 있다 https://noirstar.tistory.com/12
장/단점
장점은 잘 쓰면 컴파일 속도가 줄어 작업 능률이 오를것이다.
단점은 잘 못쓸 경우긴 하지만 미리 컴파일할 헤더 파일이 자주 변경하게 되면 오히려 컴파일 시간이 더 오래 걸린다는 것이다. PCH(precompiled Header) 파일을 만들 때, 20%~200%가량 속도가 느리다고 한다.
여담
언리얼에는 IWYU라는 모델을 이용해 PCH(precompiled Header) 파일을 관리한다는 듯하다.
https://docs.unrealengine.com/ko/Programming/UnrealBuildSystem/IWYUReferenceGuide/index.html
미리 컴파일된 헤더를 잘 사용해 작업 능률을 높여보자
push_back과 emplace_back의 차이 (0) | 2019.12.04 |
---|