Customizing Builds with Release Profiles
Release profiles control compiler optimization levels and debugging information. Cargo uses two main profiles:
dev
: Used bycargo build
(fast compilation, debugging info)release
: Used bycargo build --release
(optimized, production-ready)
$ cargo build
Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.00s
$ cargo build --release
Finished `release` profile [optimized] target(s) in 0.32s
Default Settings
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
opt-level
controls optimization intensity (0-3):
- 0: No optimization, fastest compilation
- 3: Maximum optimization, slower compilation
Custom Configuration
Override defaults in Cargo.toml
:
[profile.dev]
opt-level = 1
This applies moderate optimization to development builds, trading compile time for runtime performance.
For complete configuration options, see Cargo’s profile documentation.