Evaluate using Profile-Guided Optimization (PGO) for Deno #24312
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!
I found the article about efforts that the Deno team spent on optimizing one of its tools - the LSP server. Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects including LSP servers like Clangd and Rust-Analyzer. The results are available here. Since this, I think it will be a good idea to try to optimize the Deno ecosystem with PGO.
I can suggest the following things to do:
For the Rust projects, I recommend trying to start with cargo-pgo - it makes it much easier to start with PGO. However, direct work with PGO via the corresponding Rustc flags is also an option.
Here you can find different materials about PGO: benchmarks in different software, examples of how PGO is already integrated with different projects, PGO support in multiple Rust compilers, and some PGO-related pieces of advice.
After PGO, I suggest evaluating the LLVM BOLT optimizer (aka Post-Link Optimizer) - it can give more aggressive optimizations even after PGO. However, starting with regular PGO will be easier to do.
I would be happy to answer all your questions about PGO!
P.S. I already found one closed PR about PGO. Seems like it's related to the V8 stuff. What is the current status of enabling PGO for the V8 dependency in Deno?
Beta Was this translation helpful? Give feedback.
All reactions