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

perf(interop): parallelize and accept tarballs #272

Merged
merged 3 commits into from
Aug 8, 2020
Merged

perf(interop): parallelize and accept tarballs #272

merged 3 commits into from
Aug 8, 2020

Conversation

Thomaash
Copy link
Member

@Thomaash Thomaash commented Aug 7, 2020

Parallelization took down about 4 minutes (from 45 to 41, yay!). This was a massive waste of time and with the advantage of hindsight it makes perfect sense, a lot of the stuff we run is already trying to get as much as it can from multicore systems so the utilization is already very high. Plus dependants can't start before their dependencies are done, this pretty much limits parallelization to running Network, Timeline and Graph3D in parallel and everything else in series anyway. I'm keeping it though, because it's a bit faster and since it's all based on promises now, the control flow is much nicer and easier to follow (the projects simply await the promises of their dependencies).

Bigger improvement is that it's now possible to use already built and packed project instead of building it from scratch. This took down about 6 minutes (from 41 to 35 minutes). This basically allows us to add npm pack into build step and chain interop after it (before this change we would run things like npm run build and npm run test once as a part of the standard CI and once more with the bit by bit identical code as a part of interop testing).

However all these times apply to Vis Dev Utils and we don't make that many changes here, it will be mostly Renovate dealing with this (if it turns out to clog the CI we can tell it to work when we sleep, something like 22:00 through 6:00 UTC?). It doesn't make much of a sense to build the dependencies of packages (e.g. Vis Util for Vis Network) or the sibling packages (Vis Graph3D for Vis Network), it only makes sense to build the dependants (e.g. Vis Charts for Vis Network). What this means is that Vis Dev Utils is the worst case scenario, Vis Util is faster, Vis Data even more and Vis Network took 3 minutes (Vis Charts doesn't have many tests at the moment, we should write some more to make sure our projects actually work with each other).

@Thomaash Thomaash requested a review from a team August 7, 2020 20:52
@Thomaash Thomaash merged commit d62dfd1 into master Aug 8, 2020
@Thomaash Thomaash deleted the interop branch August 8, 2020 16:37
@vis-bot
Copy link
Collaborator

vis-bot commented Aug 8, 2020

🎉 This PR is included in version 2.4.1 🎉

The release is available on:

Your semantic-release bot 📦🚀

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

Successfully merging this pull request may close these issues.

3 participants