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

Optimize library installer conan calls #1342

Open
partouf opened this issue Jun 21, 2024 · 2 comments
Open

Optimize library installer conan calls #1342

partouf opened this issue Jun 21, 2024 · 2 comments

Comments

@partouf
Copy link
Member

partouf commented Jun 21, 2024

Now that the Cloudfront caching in front of the Conan server is disabled, we need to figure out a way to manually optimize the process.

A large IO bottleneck is the checks that we do to prevent from building the same thing over and over again:

These are called for every compiler that will be built with. There might be a way to request the information for all compilers at once and then only do the lookup per compiler.

Related endpoint: https://github.com/compiler-explorer/conanproxy/blob/main/index.js#L454

Lesser influence, but still IO:

  • get_commit_hash
    def get_commit_hash(self) -> str:
    • This really only has to be called once, so either the first time its called or just in the constructor
@AbrilRBS
Copy link
Member

is_already_uploaded main/bin/lib/library_builder.py#L796

I'm thinking that Conan is meant to lift these concerns out from us. Maybe it's time to implement a more standard Conan workflow to build all libraries? I think the end result could be super cool :)

@partouf
Copy link
Member Author

partouf commented Jun 21, 2024

is_already_uploaded main/bin/lib/library_builder.py#L796

I'm thinking that Conan is meant to lift these concerns out from us. Maybe it's time to implement a more standard Conan workflow to build all libraries? I think the end result could be super cool :)

I invite you to try, but I can pretty much promise you you'll be wasting your time. I have tried all kinds of standard things, they just don't work for the library builder.

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

2 participants