Skip to content

Commit 6c8777a

Browse files
authored
Merge pull request mainmatter#190 from Manubi/patch-1
2 parents 5f3923b + b1e8b0d commit 6c8777a

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

book/src/02_basic_calculator/08_overflow.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,18 @@ You may be wondering—what is a profile setting? Let's get into that!
6969
A [**profile**](https://doc.rust-lang.org/cargo/reference/profiles.html) is a set of configuration options that can be
7070
used to customize the way Rust code is compiled.
7171

72-
Cargo provides two built-in profiles: `dev` and `release`.\
72+
Cargo provides 4 built-in profiles: `dev`, `release`, `test`, and `bench`.\
7373
The `dev` profile is used every time you run `cargo build`, `cargo run` or `cargo test`. It's aimed at local
7474
development,
7575
therefore it sacrifices runtime performance in favor of faster compilation times and a better debugging experience.\
7676
The `release` profile, instead, is optimized for runtime performance but incurs longer compilation times. You need
7777
to explicitly request via the `--release` flag—e.g. `cargo build --release` or `cargo run --release`.
78+
The `test` profile is the default profile used by `cargo test`. The `test` profile inherits the settings form the `dev` profile.
79+
The `bench` profile is the default profile used by `cargo bench`. The `bench` profile inherits from the `release` profile.
80+
Use `dev` for iterative development and debugging, `release` for optimized production builds,\
81+
`test` for correctness testing, and `bench` for performance benchmarking.
82+
83+
7884

7985
> "Have you built your project in release mode?" is almost a meme in the Rust community.\
8086
> It refers to developers who are not familiar with Rust and complain about its performance on

0 commit comments

Comments
 (0)