You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A few days ago I found the Reddit post- as far as I see, the project's developers think about performance a lot. Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects including many projects with different parsers. The results are available here. Since PGO helped in many cases, I think it will be a good idea to try optimizing SWC by applying PGO to it.
I can suggest the following things to do:
We need to perform PGO benchmarks on SWC. If it shows improvements - add a note about possible improvements to the documentation. Providing an easier way (e.g. a build option) to build scripts to build SWC with PGO can be useful for the end-users too.
It will be a good idea to integrate building with PGO into your CI pipelines. In this case, users will get already PGO-optimized binaries from the website (if you are going to provide prebuilt binaries, of course)
For the Rust projects, I suggest trying to start with cargo-pgo.
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 - 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!
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hi!
A few days ago I found the Reddit post- as far as I see, the project's developers think about performance a lot. Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects including many projects with different parsers. The results are available here. Since PGO helped in many cases, I think it will be a good idea to try optimizing SWC by applying PGO to it.
I can suggest the following things to do:
For the Rust projects, I suggest trying to start with cargo-pgo.
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 - 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!
Beta Was this translation helpful? Give feedback.
All reactions