Cargo.toml: Add profiling profile

Also fix comment about release profile, debug info is not there.
This commit is contained in:
Nicolas Boichat 2025-04-29 22:37:41 +08:00
parent 053e6b4d08
commit b5824cd498
2 changed files with 17 additions and 3 deletions

View file

@ -548,9 +548,9 @@ name = "uudoc"
path = "src/bin/uudoc.rs"
required-features = ["uudoc"]
# The default release profile. It contains all optimizations, without
# sacrificing debug info. With this profile (like in the standard
# release profile), the debug info and the stack traces will still be available.
# The default release profile. It contains all optimizations.
# With this profile (like in the standard release profile),
# the stack traces will still be available.
[profile.release]
lto = true
@ -567,6 +567,12 @@ opt-level = "z"
panic = "abort"
strip = true
# A release-like profile with debug info, useful for profiling.
# See https://github.com/mstange/samply .
[profile.profiling]
inherits = "release"
debug = true
[lints.clippy]
multiple_crate_versions = "allow"
cargo_common_metadata = "allow"

View file

@ -70,6 +70,14 @@ samply record ./target/debug/coreutils ls -R
samply record --rate 1000 ./target/debug/coreutils seq 1 1000
```
The output using the `debug` profile might be easier to understand, but the performance characteristics may be somewhat different from `release` profile that we _actually_ care about.
Consider using the `profiling` profile, that compiles in `release` mode but with debug symbols. For example:
```bash
cargo build --profile profiling -p uu_ls
samply record -r 10000 target/profiling/ls -lR /var .git .git .git > /dev/null
```
## Workflow: Measuring Performance Improvements
1. **Establish baselines**: