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

configure is slow #634

Closed
woody-apple opened this issue May 9, 2020 · 9 comments · Fixed by #646 or #664
Closed

configure is slow #634

woody-apple opened this issue May 9, 2020 · 9 comments · Fixed by #646 or #664
Assignees
Milestone

Comments

@woody-apple
Copy link
Contributor

bootstrap takes 56 seconds, vs build takes 17
https://app.circleci.com/pipelines/github/woody-apple/connectedhomeip/159/workflows/4e720f20-aa33-48ca-baa9-84005e6664f5/jobs/846

Originally posted by @woody-apple in #631 (comment)

@gerickson
Copy link
Contributor

Looking at the output, it would appear that it is the recursive configure that's the long pole here rather than bootstrap itself.

Breaking it down on my MacBook Pro, I find:

  • bootstrap: 7.86s
  • bootstrap -w make: 4.69s
  • bootstrap -w config: 0.70s
  • configure: 80.71s

@woody-apple woody-apple changed the title Bootstrap is slow configure is slow May 11, 2020
@woody-apple
Copy link
Contributor Author

Thanks! Renamed

@rwalker-apple
Copy link
Contributor

@woody-apple is bootstrap.sh in the run referenced above using configure -C?

@rwalker-apple
Copy link
Contributor

nevermind. got it

@woody-apple
Copy link
Contributor Author

@woody-apple
Copy link
Contributor Author

@rwalker-apple

@woody-apple
Copy link
Contributor Author

@rwalker-apple
Copy link
Contributor

rwalker-apple commented May 11, 2020

next biggest chunk of optimization of configure would come from taking nlfriends out of the tree, making them an external dependency like openssl

this would also remove nlfriends from make distcheck, make coverage, and it would also mean that customers of CHIP would need to go get them (a la openssl)

@turon
Copy link
Contributor

turon commented May 11, 2020

I agree that running configure of each of the nlfriends is taking the majority of time. And for nlfriends such as nlassert and nlio, which primarily just provide headers (outside of unit tests), this time seems especially wasteful.

In a cmake prototype I've been experimenting with, simply hooking in configure of third_party/nlfriends increased initial build time from ~2s to >20s.

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