facebook / fbthrift

Facebook's branch of Apache Thrift, including a new C++ server.
Apache License 2.0
2.55k stars 607 forks source link

Evalaute Profile-Guided Optimization (PGO) and LLVM BOLT #564

Open zamazan4ik opened 11 months ago

zamazan4ik commented 11 months ago

Hi!

Recently I checked Profile-Guided Optimization (PGO) improvements on multiple projects. The results are here.

Since PGO showed measurable improvements in compiler-like workloads (Clang, GCC, Rustc, etc.) I think it could be helpful to check PGO for the FBThrift compiler too.

We need to perform PGO benchmarks on FBThrift compiler. And if it shows improvements - add a note to the documentation about possible improvements in FBThrift compiler performance with PGO. Providing an easier way (e.g. a build option) to build scripts with PGO can be useful for the maintainers and end-users too. Reducing compile time is important for CI and local developers' experience.

Also, since Facebook created BOLT (LLVM BOLT) I think would be great to see BOLT results on FBThrift compiler as well.