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

Improving performance with PGO #942

Closed
zamazan4ik opened this issue Jun 24, 2023 · 3 comments
Closed

Improving performance with PGO #942

zamazan4ik opened this issue Jun 24, 2023 · 3 comments

Comments

@zamazan4ik
Copy link

Hi!

Recently I did benchmarks for Profile-Guided Optimization (PGO) on Clangd (link). Since the results show improving performance in ~20%, I think the same thing could be applied to ccls as well.

More about PGO applications you can read here.

@MaskRay
Copy link
Owner

MaskRay commented Jun 25, 2023

I am a PGO contributor:)

There is no action item on ccls side. The time is mostly spent in Clang. If Clang is optimized, ccls will get speedup.
There is no really action item for llvm-project, either. You can read LLVM_BUILD_INSTRUMENTED and llvm/utils/collect_and_build_with_pgo.py

@MaskRay MaskRay closed this as completed Jun 25, 2023
@zamazan4ik
Copy link
Author

zamazan4ik commented Jun 25, 2023

@MaskRay Am I correct, that you performed non-PGO vs PGO benchmarks on ccls somewhen earlier and proved that PGO does not have an (observable) effect on ccls? I mean applying PGO to the ccls codebase itself, not on Clang. If yes, could you share please the results?

@findNextStep
Copy link

@zamazan4ik PBO is used to accelerate code execution, and currently the most CPU consuming scenario for ccls is when processing C++files (aka index), which is mainly due to the effectiveness of libclang's code. I believe that PBO on CCLs will not improve the user experience

Perhaps it can improve the performance of finding references, but currently I have not encountered any performance issues with ccls when find references

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants