C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[17525] 컴파일 속도 나름대로의 결론.
둘리.CSIEDA [dooly386] 4999 읽음    2010-01-15 13:58
** 우선 모든것은 저의 방식대로 태스트해본 결과이며 모든경우에 적용되지는 않습니다.
또한 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 꺼도 컴파일 시간 같을 거라는 것은 충분히 맞을 수 있습니다만,
아마도 저의 경우가 아닌듯 합니다.

앞서 말씀 드렸듯이 자신의 프로젝트 코드 스타일에 따라 충분히 달라지며 위의 사항은 저의 프로젝트 스타일에 해당함을 말씀드리니 오해 없으시기를 바랍니다.

저와 비슷한 상황에 있으신 분들이 혹 계실거라 생각하여 나름대로 여기에 미흡하나마 정보를 올립니다.

* 한 몇일 컴파일 시간과 싸우느라고 코딩을 별로 못했네요... 이제 어느정도 결론이 나서.. 본업인 코딩으로 돌아가야 겠군요.. 많은 조언 주신분들께 감사의 인사 드립니다.

새해복 많이 받으세요~~
김도완 [purplecofe2]   2010-01-15 14:17 X
실제로 오버클럭을 꺼보구 확인해보셔요. 맥의 칩셋이나 구성이 다를수도 있고(해당 메인보드는 P55를 사용한 것 같더군요), 메모리의 타이밍이 다를수도 있습니다. SIW 같은 프로그램으로 스펙을 확인을 해보셔두 괜찮으리라 봅니다. 같은 기종의 비교가 제대로 확인을 할 수 있는 방법일 것 같습니다. 실제로 같은 칩셋을 써도 어느 회사의 메인보드이냐에 따라 성능이 다릅니다. abit 같은 경우에는 메모리 성능이 다른 메인보드보다 우월했었죠.
둘리.CSIEDA [dooly386]   2010-01-15 14:23 X
테스트한것은 맥이 아닙니다. 제가 가지고 있는 맥은 일체형이라 오버자체를 못합니다. SSD도 못달아요..컴퓨터에 나사 딱 3개 있는데,, 그거 열면 memory 모듈 넣는것밖에 없습니다.

또한 실제로 오버 끄고 태스트해보았읍니다.

결론은 제가 작업하는 작업이 빨라지고 능률이 많이 오른다는 것이죠.. 그거면 충분합니다.
Lyn [tohnokanna]   2010-01-15 14:35 X
음. 좋은정보 감사합니다. 나중에 컴파일속도 문제 생기면 오버클럭 함 고려해보도록 : )
금목암[손효철] [iconms1]   2010-01-15 15:01 X
전에도 이런 이야기 가 많이 나온거 같은데 그때 ramdisk 를 만들고 거기서 컴파일하면 빨라진다가 정답 같았습니다
ramdisk는 물리적 읽고쓰기 시간이 극도로 단축됩니다 . 물론 메인메모리가 그만한 용량의 ramdisk를 만들어서 소스와 컴파일후 결과물의 저장 공간을 만들어야겠지만요

+ -

관련 글 리스트
17525 컴파일 속도 나름대로의 결론. 둘리.CSIEDA 4999 2010/01/15
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.