Evaluate using Profile-Guided Optimization (PGO) #19
zamazan4ik
started this conversation in
Ideas
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Hi!
Recently I did many Profile-Guided Optimization (PGO) benchmarks on multiple projects (including many compilers and compiler-like workloads like static analyzers, code formatters, etc.) - the results are available here. Since Web Infra is a performance-oriented project (as far as I can conclude from various benchmarks for https://www.reddit.com/r/rust/comments/1f4idhz/rspack_v10_the_javascript_bundler_has_been/), I think PGO can help here too - achieve better performance.
We need to evaluate PGO applicability to Web Infra tooling. If it helps to achieve better performance - add a note to the documentation about that. In this case, users and maintainers will be aware of another optimization opportunity for Web Infra. Also, PGO integration into the build scripts can help users and maintainers easily apply PGO for their workloads. Even distributed by Web Infra binaries can be pre-optimized with PGO on a generic-enough sample workload (e.g.
rustc
already does it).After PGO, I can suggest evaluating LLVM BOLT as an additional optimization step after PGO.
For the Rust projects, I recommend starting with cargo-pgo - it makes easier PGO optimization in many cases.
This optimization is applicable to "native" technologies like Rust, C++, etc. Since already there are some tools in Rust - I can suggest starting with them.
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions