Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evaluate using Profile-Guided Optimization (PGO) and Post-Link Optimization (PLO) #383

Open
zamazan4ik opened this issue Nov 19, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@zamazan4ik
Copy link

Description of the problem

It's not a problem - it's a performance improvement idea for the project

Proposed solution

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects including many projects (including logging solutions like Vector and fluent-bit) - the results are available in the awesome-pgo repo. Since PGO has helped in many cases, I think it would be a good idea to try optimizing axosyslog by applying PGO to it. I guess the idea could be interesting for the project since, according to the README file, axosyslog developers care about performance.

I can suggest the following things to do:

  • We need to perform PGO benchmarks on axosyslog. 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 axosyslog 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

Here you can find different materials about PGO: benchmarks for multiple apps, examples of how PGO is already integrated with various projects, PGO support in multiple Rust compilers, and some PGO-related pieces of advice.

After PGO, I suggest evaluating the Post-Link Optimization (with tools like LLVM BOLT) - it can give more aggressive optimizations even after PGO. However, starting with regular PGO will be easier to do.

Alternatives

Leave things as is

Additional context

N/A

@zamazan4ik zamazan4ik added the enhancement New feature or request label Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant