** 우선 모든것은 저의 방식대로 태스트해본 결과이며 모든경우에 적용되지는 않습니다.
또한 Delphi 가 아닌 C++ 프로젝트에 제한 합니다. Delphi 는 충분히 빠르다고 생각 합니다.
C++ 컴파일은 자신의 소스구조(?) 에 따라 많이 달라집니다.
저같은 경우는 STL, BOOST 와 같은 Template 코드들,class ,function overload, operator overload, template class and template function, virtual, singletone, meta class 등을 많이 사용합니다. 컴파일 시간을 많이 갉아 먹는것들이 몇 있죠.. 또한 VCL 같은경우 아주 최소한의 것만 제한적으로 wrapping 을 하여 사용합니다.
혹시 모를 컴파일러 갈아타기를 위하여...
즉 많은 부분이 template 으로 되어 있어서 코드 구조는 module 화 되어 있지만 컴파일에는 결국 hpp stype 을 많이 당겨쓰기 때문에 컴파일 시간이 많이 필요합니다. 또한 virtual teble 이 많이 들어가서 링크 속도가 다소 늦습니다.
자신의 소스코드가 build 를 할때 과연 어느 부분에 CPU 가 많은 시간을 들이는지를 알아야 정확한 최적의 시스템을 구축할수 있을듯 합니다.
저같은 경우는 결국 full compile 시 disk parsing 이 차지하는 시간적인 비율이 전체 컴파일 시간에서 아주 적은 부분이라는 것이죠.. 이에 비해 compiler 의 C++ 컴파일 자체에 CPU의 많은 시간이 할애 되는 경우가 됩니다.
이런경우 , SSD 와 같은 저장매체의 속도에는 다소 영향을 받지만, 그렇게 커다란 변수가 되지 않는다는 것이죠.
SSD를 설치하여 OS 및 컴파일러등 모든것을 SSD에서 태스트 해보았습니다만, 윈도우즈 자체의 speed는 빨라집니다. 수치적으로 정확하게 얼마나 빨라지는지는 모르겠지만, HDD 벤치마킹에서 일반적으로 HDD7200RPM 보다 SSD가 두배정도 빠른거(제품에 달라 다릅니다만)와,, 체감상 한 1.5배 이상 빨라지는듯 합니다.
결국 OS 가 빨라진다고 compiler 가 빨리돈다는 것은 아니죠. Windows의 전반적인 운영에있어서 빨라진다는 것이겠죠. HDD 빨라진다고 CPU가 계산 빨리 하는것은 아니니까요..
저같은 경우의 소스코드 스타일에는, 결국 CPU 의 계산속도 및 처리속도에 의존성을 크게 받습니다. 그러므로
다른것보다는 CPU 의 성능향상 및 안정적인 Overclocking 의 구현이 필요한 경우가 될듯 합니다. 또한 장기적으로
RADSTUDIO C++ 부분의 컴파일 속도향상을 장기적으로 기대해야 겠죠..(64bit 나오는 계획이 있는지 모르겠습니다)
컴파일 시간을 테스트해보니 CPU Clock 스피드의 곡선에 컴파일 시간이 수렴하더군요.
앞으로 회사의 (개인으로도) 시스템의 구매에 있어서 구매조건으로 위의 사항을 충분히 반영 하려 하고 있습니다.
앞서 Lyn 님이 CPU over 꺼도 컴파일 시간 같을 거라는 것은 충분히 맞을 수 있습니다만,
아마도 저의 경우가 아닌듯 합니다.
앞서 말씀 드렸듯이 자신의 프로젝트 코드 스타일에 따라 충분히 달라지며 위의 사항은 저의 프로젝트 스타일에 해당함을 말씀드리니 오해 없으시기를 바랍니다.
저와 비슷한 상황에 있으신 분들이 혹 계실거라 생각하여 나름대로 여기에 미흡하나마 정보를 올립니다.
* 한 몇일 컴파일 시간과 싸우느라고 코딩을 별로 못했네요... 이제 어느정도 결론이 나서.. 본업인 코딩으로 돌아가야 겠군요.. 많은 조언 주신분들께 감사의 인사 드립니다.
새해복 많이 받으세요~~
|