Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) to fish-shell #10119
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 checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are available here. According to the tests, PGO can help with achieving better performance in many cases for many applications. Regarding PGO for shells - OpenSuse uses (check
cflags_profile_feedback
flags) PGO for buildingbash
package (unfortunately, I didn't find benchmarks for PGO-enabledbash
yet). Since this, I think trying to optimize Fish with PGO can be a good idea.I can suggest the following action points:
Testing Post-Link Optimization techniques (like LLVM BOLT) would be interesting too (Clang and Rustc already use BOLT as an addition to PGO) but I recommend starting from the usual PGO.
Here are some examples of how PGO optimization is integrated in other projects:
configure
scriptFor the Rust projects I recommend using cargo-pgo for performing PGO and PLO optimizations.
Right now Fish project is in the middle of the transition from C++ to Rust (AFAIK), so I can recommend postponing the activity regarding enabling PGO for Fish because enabling PGO for multiple languages inside one project can be a bit tricky to achieve (read it as "requires more efforts to achieve"). So think about this suggestion just as a future idea.
Beta Was this translation helpful? Give feedback.
All reactions