내장 된 패키지가있는 delphi에서 .exe 파일을 컴파일하면 약 600kb의 EXE 파일이 생성됩니다. 그러나 런타임 패키지로 컴파일하면 크기 합계 (.exe + 모든 필수 .BPLs)는 약 6-8MB입니다 (컴파일러 버전에 따라 다름). 그 차이가 왜 그렇게 중요한가요?Delphi : 기본 제공 패키지가있는 .exe : 600kb, .exe + 외부 BPL : 6MB. 왜 그런가요?
9
A
답변
14
일반 컴파일을 실행하면 링커가 DCU에서 "스마트 링킹"을 수행하고 프로그램에서 필요하지 않은 코드를 제거 할 수 있기 때문입니다. 그러나 패키지는 미리 빌드되어 있으며 모든 코드가 포함되어 있으므로 더 작은 크기로 스마트 링크 할 수 없습니다.
4
BPL이 내장 된 프로그램을 생성 할 때 BPL 파일 전체가 링크되어 있다고 가정한다고 생각합니다. 그건 사실이 아니야. 컴파일의 마지막 단계에서 Delphi 컴파일러는 모든 것을 연결합니다. 모듈은 BPL에 있지만 직접 또는 간접적으로 프로그램에서 호출하지 않습니다.
그래서 훨씬 더 작은 풋 프린트로 끝나기 때문에 실제로 필요한 모듈 만 최종 exe에 있습니다.
모듈 전체가 아닙니다. 스마트 링크 커 (smartlinker)는 절대 사용되지 않는다고 판단되면 개별 기능과 절차를 하나의 단위에서 잘라낼 수 있습니다. –