-
Notifications
You must be signed in to change notification settings - Fork 468
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 Profile-Guided Optimization on kvrocks #1551
Comments
@zamazan4ik Thanks for suggesting it, and we definitely like to try any possible improvements. BTW, Kvrocks has applied the LTO/IPO in #764, and looking forward to seeing the result if anyone is interested in this. |
So, for implement this feature, we build a first version, run a standard benchmark test, e.g. redis-benchmark and then, rebuild with using a generated gcda file, right? Or we can static generating this file for general linux and add it into repo (and periodic update)? |
Yes. If you want to regenerate profile data per commit or per-optimized build, you can collect
You can do it too! Just be careful - in general, these files ( |
Lot of thanks, I need a think about this way. You are correct - storing a static file have a bad idea for us, it need to be in CI stage or a dedicated command (or a flag) in x.py build scipt. |
Is there any progress? I'm interested in it. Could I have a try to do something about pgo? |
@raffertyyu Assigned, thank you! |
Search before asking
Motivation
I think Profile-Guided Optimization can improve kvrocks performance. I did a lot of PGO benchmarks on different software (all results are shown here). The most interesting for kvrocks results probably are RocksDB results and Redis results.
Seems like could be a good thing to try on kvrocks as well.
Solution
Try to use PGO and/or BOLT. It could be used via
-fprofile-generate
/-fprofile-use
compiler flags. For further instructions follow GCC or Clang documentation.Are you willing to submit a PR?
The text was updated successfully, but these errors were encountered: