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

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[624] [팁] PreCompile 를 활용하여 빌드 시간을 확 줄이기
유광희 [yurchi] 14170 읽음    2006-12-05 17:26
안녕하세요. 지난번 팁 내용의 내용이 정신이 없어서 새롭게 예제와 함께 올립니다 ^^



       

안녕하세요. 유광희 입니다
Borland C++ Builder 6.0 환경에서 Pre-Compile 기능을 효율적으로 사용하는 방법을 
알려드립니다.
 

일단 결과 !

예제 프로젝트의 적용전 28 초 -> 8초

셈플 프로젝트의 설명

예제 프로젝트는 2개의 폼으로 구성되어 있는 간단한 어플리케이션 입니다. 2개의 폼에서 이렇게 차이가 나는데, 폼이 여러개라면 ... 덜덜덜..입니다.. 두 폴더의 프로젝트는 PreCompile 적용 전과 후를 비교하는 동일한 어플리케이션입니다 작은 프로젝트야 대충 기다리면 된다고 하실지 모르겠으나, 제 회사에서 작업하는 프로젝트는 5분~10분까지 빌드 시간이 걸립니다. -_-; 이 시간이 1분 이내로 끝났습니다! 얏호

적용 방법

1. PreHeader 유닛을 생성 (PreHeader.cpp, PreHeader.h) 2. PreHeader.h 에 각종 헤더, 폼 등 VCL 클래스에 사용된 헤더를 전부다 넣습니다 아래는 예로 구성한 헤더 내용 입니다

PreHeader.h 의 예

#ifndef PreHeaderH #define PreHeaderH #include <time.h> #include <assert.h> #include <vcl.h> #include <inifiles.hpp> #include <dir.h> #include <stdio.h> #include <string.h> #include <systdate.h> #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <Graphics.hpp> #include <jpeg.hpp> #include <ComCtrls.hpp> #include <ImgList.hpp> #include <Registry.hpp> #include <ActnList.hpp> #include <scktcomp.hpp> #include <Dialogs.hpp> #include <NMHttp.hpp> #include <NMURL.hpp> #include <Psock.hpp> #include <vcl.h> //--------------------------------------------------------------------------- #endif 3. 모든 .cpp 의 내용을 수정하세요! VCL, 기타 헤더를 include 하는 내용을 모두 PreHeader.h 로 수정하세요 아래는 총 3개의 cpp 를 수정하는 모습니다 예:PreCompileTestApp.cpp
#include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- USEFORM("TfrmMain.cpp", frmMain); USEFORM("TfrmTest1.cpp", Form1); -> //--------------------------------------------------------------------------- #include "PreHeader.h" //--------------------------------------------------------------------------- USEFORM("TfrmMain.cpp", frmMain); USEFORM("TfrmTest1.cpp", Form1); 예:TfrmMain.cpp #include <assert.h> #include <inifiles.hpp> #include <dir.h> #include <stdio.h> #include <string.h> #include <vcl.h> #pragma hdrstop #include "TfrmMain.h" //--------------------------------------------------------------------------- #pragma package(smart_init) -> #include "PreHeader.h" #include "TfrmMain.h" //--------------------------------------------------------------------------- #pragma package(smart_init) 예:TfrmTest1.cpp #include <time.h> #include <assert.h> #include <inifiles.hpp> #include <dir.h> #include <stdio.h> #include <string.h> #include <systdate.h> #include <vcl.h> #pragma hdrstop #include "TfrmTest1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) -> #include "PreHeader.h" #include "TfrmTest1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) 위처럼 PreHeader.h 로 모두 바꾸세요 4. PreHeader.cpp 를 프로젝트 파일 목록의 맨 첨 위로 올리세요 5. 프로젝트 빌드 시간을 비교해보세요! 엄청난 향상을 볼수 있습니다 6. 옵션 추가 수정 - 작업하는 프로젝트 파일이 많을 경우 아래의 절차를 꼭 처리하세요 아래의 절차는 현재 작업하던 프로젝트의 PreHeader 를 없애지 않고 보관하도록 하여여 다음번에 열었을 경우에도 바로 효과를 받기 위한 것입니다 Project -> Options -> Compiler -> Use pre-compiled header 를 선택 -> File Name 에 적절한 이름을 입력

예제와 소스 다운로드

다운로드

작성자

http://cpueblo.com

유광희

TohnoLyn [tohnokanna]   2006-12-06 05:11 X
기본적으로 VS의 프리컴파일드헤더랑 같은 기능이군요 ^^
좋은팁감사합니다
이대현 [dhyuni]   2006-12-08 13:58 X
C++ Builder 5.0 에서 되는지요?
utime.김성하 [utime]   2006-12-12 10:36 X
5.0도 됩니다~
nicekr.황경록 [mpbox]   2007-01-02 01:09 X
상세한 설명 좋군요 ^^*
Young [bp02646]   2007-03-20 18:37 X
음.. 뭘 잘못했지.. 120초에서. 1200 초가 되어 버렸네..--;

+ -

관련 글 리스트
624 [팁] PreCompile 를 활용하여 빌드 시간을 확 줄이기 유광희 14170 2006/12/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.