C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[28634] Re: 델파이와 빌더와는 조금 구조가 다릅니다.
이필호.xius [xius] 904 읽음    2004-01-27 18:38
김태선 님이 쓰신 글 :
: C++은 C의 소스 구성방법을 이어 받아 현대적이지 못한 컴파일 방법을 택할수 밖에 없나 봅니다.
: 델파이에서는 5초 정도면 컴파일 할 것을 거의 1분 가량을 컴파일 하네요.
: 물론 컴파일 시간을 최대한 단축하기 위해 가능한 모든 곳에
: #pragma hdrstop 을 넣었습니다.
: 그런데도 작은 수정하나로 다시 컴파일 해도 약 2백만 라인을 재 컴파일 해야 하는 상황입니다.
: 소스를 구성할때 상호 의존성을 줄이기 위해 물론 노력을 했지요.
:
: 프로젝트가 자꾸 커지니 컴파일 시간이 정말 만만하지 않군요.
: 혹시 더 좋은 방법이 없을까요?
: 지금은 DLL을 안쓰고 EXE 하나에 모듈을 다 합치고 있는데 ...
: 혹 경험이 있으신 분 조언을 부탁합니다.
:

델파이는 InMemory 컴파일을 합니다.
즉, 소스를 Object 파일로 만들지 않고 바로 메모리에서 Exe로 변환하는데 이는 언어 구조상 컴파일러 만들기 제일 좋은 언어가 파스칼이라서 그렇다고 합니다.

반면 C++은 Object파일을 만들고(컴파일) 이 Object파일을 Exe로 만드는(링크) 두단계가 필요합니다.
때문에 이런 작업을 메모리안에서 할수 없기 때문에 파일로 작업을 하게 됩니다.

컴퓨터전체를 놓고 제일 속도가 떨어지는 곳이 하드 디스크인것은 말씀드리지 않아도 아실줄 압니다.
때문에 당연히 델파이와 컴파일속도면에서 뒤떨어지는것은 당연한 결과지요...

이는 Microsoft Visual C++ 과 Borland C++Builder 그리고 Unix gcc/g++ 혹은 Unix cc/c++ 컴파일러 통털어 동일하게 동작합니다.

그리고, 질문중에 2백만라인이 새로 컴파일된다고 하셨는데 그 2백만라인짜리가 하나의 소스파일입니까?
만일 그렇다면 당연한 결과입니다.
이럴때는 당연히 소스파일로 나누면 컴파일러가 수정된 파일만 하기 때문에 속도가 좀더 빠르게 됩니다.

즉, 연관성이 있고 없고가 중요한것이 아니라 물리적인 파일로 나뉘었는지 아닌지가 컴파일 속도에 미치는 영향이 더 크다고 말씀드릴수 있습니다.

게다가 DLL 혹은 LIB로 만들면 당연히 DLL, LIB는 미리 컴파일이 되어 있는 놈임으로 컴파일할때 이는 빼고 컴파일하게 됨으로 또한 당연히 컴파일속도가 더 빨라 집니다.

+ -

관련 글 리스트
28627 [질문] 컴파일 라인이 지나치게 많아지면 어떻게 빨리 컴파일 할 수 있을까요? 김태선 706 2004/01/27
28634     Re: 델파이와 빌더와는 조금 구조가 다릅니다. 이필호.xius 904 2004/01/27
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.