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