ReleaseSmall — 산출물 크기 최우선으로 줄인 배포 빌드
ReleaseSmall — 산출물 크기 최우선으로 줄인 배포 빌드
배포 결과물의 크기가 가장 중요할 때 쓰는 빌드 모드예요. 실행 속도나 컴파일 시간보다 '바이너리가 얼마나 작은가'에 초점을 맞춘 옵션이고, 이 모드를 켜면 컴파일러가 크기를 줄이는 데 집중하느라 안전장치는 뒷전으로 빼요.
본문
-O ReleaseSmall 옵션으로 이 모드를 켤 수 있어요.
$ zig build-exe example.zig -O ReleaseSmall
이 모드가 가져오는 특징을 정리하면 이래요.
- 중간 수준의 런타임 성능 — 속도를 키우기보다 크기를 줄이는 데 힘을 쏟아서, 실행 속도는 ReleaseFast만큼 빠르진 않아요.
- 안전 검사 비활성화 — 안전 검사(safety checks)가 꺼져 있어서 오버플로 같은 잠재적 오류를 감지하지 못해요.
- 느린 컴파일 속도 — 최적화를 제대로 하려고 컴파일러가 더 많은 시간을 써서 빌드가 오래 걸려요.
- 작은 바이너리 크기 — 최적화를 거치며 산출물이 가장 작아져요.
- 재현 가능한 빌드 — 같은 소스와 환경이면 결과물이 동일하게 나와요.
핵심은 '작게 만들기를 먼저, 안전은 나중'이라는 거예요. 그래서 배포 전에 안전 검사가 필요한 코드가 있는지 꼭 따져봐야 하는 모드랍니다.
더 알아보기
- 컴파일 타임에 동작을 제어하는 값들은
Compile Variables에서 다뤄요. - 프로젝트 빌드를 자동화하고 싶다면
Zig Build System을 살펴보세요. - 안전 검사가 꺼진 상태에서 벌어질 수 있는 일은
Illegal Behavior에서 확인할 수 있어요.