Visual Studio Parallel Build 향상
프로그래밍 2012. 11. 15. 14:21 |이번에 빌드속도를 올려보고자 makefile의 그것처럼
Visual Studio가 Parellel Build를 지원하는지 구글링을 해보았습니다.
찾아보니 Visual Studio는 기본적으로 Parellel Build를 지원합니다.
다음 Tool-Option-Build and Run 항목에 가보시면
최상단에 4라고 있는데 빌드에 프로세스를 몇 개 켜서 동작시킬지를 설정할수 있습니다.
지금 보시는 항목이 Default고 더 추가 할수도 있습니다.
지금까지 Visual Studio는 항상 Parallel 로 빌드한것이지요.
하지만 왜 Makefile보다 느린지 확인해 보았습니다.
Parallel Build 종속성이 걸린 프로젝트를 프로세스를 여러 개 켜서 같이(Parallel) 빌드합니다.
--------------------------------------------------------------------------------------------------------------------------------------
이해를 돕기위해 예를 적었습니다.
A, B, C, D, E라는 프로젝트가 있습니다.
1. A 프로젝트에 종속성이 걸린 프로젝트가 BCDE가 있는 상태입니다.
A - B
- C
- D
- E
2. A 에는 B가 종속성이 있고 B에는 C가 C에는 D가 D에는 E가 걸려있는 상태입니다.
A – B – C – D – E
1번의 경우에 B,C,D,E를 Parallel 으로 빌드하고 나서 A를 빌드하지만
2번의 경우에는 E를 빌드하고나서 D 를 빌드하고 다음 C, B , A순으로 각 1개씩 순차적으로 빌드하게 됩니다.
2의 경우가 1의 경우보다 느리겠지요.
결론 : 의미없이 종속성이 걸린 경우에 빌드속도가 영향을 받게됩니다.
--------------------------------------------------------------------------------------------------------------------------------------
DHWR 프로젝트를 기준으로 빌드시간을 측정해보았습니다.
제컴퓨터에서 재빌드시간이 1분 54초가 걸렸습니다.
종속성은 다음과같이 꼬인상태입니다.
LIBDHWR을 제외한 모든 프로젝트에 종속성을 제거하니
빌드속도가 1분 13초 가걸렸습니다.
41초 정도 절약되었네요.
'프로그래밍' 카테고리의 다른 글
visual studio expression (boost, tinyxml) (0) | 2012.11.15 |
---|---|
Visual Studio Formatter (0) | 2012.11.15 |
다양한 형식의 printf문 정렬 방법 (0) | 2012.09.02 |
이클립스 에러 Conversion to Dalvik format failed: Unable to execute dex: null, unable to execute dex java heap space (0) | 2011.11.11 |
Makefile 에러 정리 (0) | 2011.10.26 |