Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) for Lapce #2817
Closed
zamazan4ik
started this conversation in
Ideas
Replies: 1 comment 5 replies
-
Hi, I evaluated, we are not going to do that, since the improvement is not significant |
Beta Was this translation helpful? Give feedback.
5 replies
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. Since on the Lapce website I see "lightning fast" statement - I think trying to optimize Lapce with PGO can be a good idea. There are multiple places that could benefit from PGO: LSP server, different parsers, RPC proxy, etc.
I can suggest the following action points:
Testing Post-Link Optimization (PLO) 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
scriptHere are some examples of how PGO-related documentation could look in the project:
Below are listed some BOLT results:
For the Rust projects I recommend using cargo-pgo for performing PGO and PLO optimizations.
I tried to find an existing benchmark ecosystem for Lapce but found nothing. If anyone can suggest how Lapce can be benchmarked - would be great!
Beta Was this translation helpful? Give feedback.
All reactions