cargo profile

dev와 release는 같은 코드를 다른 비용으로 빌드한다

Cargo profile은 빌드 시간, 디버깅 정보, 실행 성능 중 어느 쪽을 우선할지 정하는 표준 설정이다.

프로파일 최적화 빌드/디버그 쓰는 순간
dev 낮음. 빠른 컴파일을 우선한다. 디버그 정보가 풍부하고 수정-재실행이 빠르다. cargo run, 로컬 개발, 테스트 중 원인 추적
release 높음. 실행 파일 성능과 크기를 조정한다. 컴파일이 느리지만 실제 배포 성능에 가깝다. cargo build --release, 벤치마크, 배포 전 확인
custom crate별 opt-level, lto, debug 값을 조정한다. 병목 crate만 다르게 조정할 수 있다. 빌드 시간이 너무 길거나 binary 크기가 문제일 때
[profile.release]
opt-level = 3
lto = "thin"

판단 기준: 개발 중에는 원인 추적 비용을 낮추고, 배포 전에는 실제 실행 비용을 측정할 수 있는 프로파일로 바꾼다.