Rollup merge of #114998 - meysam81:meysam/feat/add-cargo-pgo-to-docs, r=ehuss

feat(docs): add cargo-pgo to PGO documentation 📝

fixes #114995
This commit is contained in:
Matthias Krüger 2023-10-27 11:48:05 +02:00 committed by GitHub
commit 8d67c32124
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -145,3 +145,26 @@ in Clang's documentation is therefore an interesting read for anyone who wants
to use PGO with Rust.
[clang-pgo]: https://clang.llvm.org/docs/UsersManual.html#profile-guided-optimization
## Community Maintained Tools
As an alternative to directly using the compiler for Profile-Guided Optimization,
you may choose to go with `cargo-pgo`, which has an intuitive command-line API
and saves you the trouble of doing all the manual work. You can read more about
it in their repository accessible from this link: https://github.com/Kobzol/cargo-pgo
For the sake of completeness, here are the corresponding steps using `cargo-pgo`:
```bash
# Install if you haven't already
cargo install cargo-pgo
cargo pgo build
cargo pgo optimize
```
These steps will do the following just as before:
1. Build an instrumented binary from the source code.
2. Run the instrumented binary to gather PGO profiles.
3. Use the gathered PGO profiles from the last step to build an optimized binary.