quickwit-oss / quickwit

Cloud-native search engine for observability. An open-source alternative to Datadog, Elasticsearch, Loki, and Tempo.
https://quickwit.io
Other
8.04k stars 328 forks source link

Add PGO support #3548

Open zamazan4ik opened 1 year ago

zamazan4ik commented 1 year ago

Is your feature request related to a problem? Please describe. Not a problem - just an opportunity.

Describe the solution you'd like Profile-Guided Optimization could help with gaining more performance with Quickwit. Would be great to test PGO on Quickwit on near real-world test cases. Probably something from https://github.com/quickwit-oss/quickwit/issues/794 could be used.

Additional context I did a quick research locally. On the latest master branch (version 0.6.1) and using for training and evaluation this benchmark, I didn't get a performance improvement (PGO version works at the same speed as non-PGO release build) but reduced a binary size: from 92 Mib to 85 Mib. My guess is this is due to less aggressive inlining since the benchmark executes only a few possible hot paths.

I think with a more mature benchmark something like this https://github.com/ClickHouse/ClickBench we could try to speed up Quickwit.

More info about PGO you could find here: https://github.com/ZaMaZaN4iK/awesome-pgo

fulmicoton commented 1 year ago

thx for the link