Skip to content

Try to apply PGO #2047

@zamazan4ik

Description

@zamazan4ik

Your Feature Request

Profile-Guided Optimization (PGO) allows gaining additional performance for the software since it uses runtime profile information to perform more advanced optimization during the compilation process. Many PGO results are available at https://github.com/zamazan4ik/awesome-pgo . I guess it could be useful for Haproxy.

Possible steps:

  • Prepare Haproxy build with PGO and bench it compared to the non-PGO Haproxy. I expect it will help to boost Haproxy performance.
  • At least consider adding PGO to CI. Yes, it has a LOT of caveats like a huge bump in a build time, good profile preparation, profile stability between releases, and much more other stuff but in my opinion, it could be worth it.
  • For some users, who want "cheaply" try to boost their Haproxy performance. Maybe will be a good idea to leave a note somewhere in the Haproxy documentation about this "advanced" option?

Possible future steps for improving:

  • Try to play with BOLT. BOLT also could help with gaining more performance even from LTO + PGO build (but it's not guaranteed). This way has drawbacks like BOLT on some platforms is too unstable; BOLT could not support some architectures, etc. But it definitely a good tool to think about.

What are you trying to do?

Trying to improve Haproxy for free :)

Output of haproxy -vv

Not applicable

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: featureThis issue describes a feature request / wishlist.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions