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

fixes for live build graph, and compilation #35

Merged
merged 1 commit into from Nov 18, 2018
Merged

Conversation

@propensive
Copy link
Owner

@propensive propensive commented Nov 18, 2018

This fixes two serious problems with compilation. Firstly, the use of a
Future running in the same execution context as the compilations seemed
to be causing greater contention on the thread pool, and thread
starvation. This was resulting in the updates to the UI being infrequent
and jittery.

Secondly, far too much work was being done during compilation: a new
Future which spawned a new bloop process was being created for every
dependency, regardless of whether those modules were already being
compiled. Even though bloop was probably not duplicating the work,
there was some overhead, and no doubt some lock contention in bloop.

If I recall correctly, building Fury from clean would previously take
around 60s. It now appears to take around 30s. Similarly, attempting to
rebuild a fully-compiled Fury using a hot compiler now settles at around
350ms, where it would previously take around 1100ms.

This fixes two serious problems with compilation. Firstly, the use of a
Future running in the same execution context as the compilations seemed
to be causing greater contention on the thread pool, and thread
starvation. This was resulting in the updates to the UI being infrequent
and jittery.

Secondly, far too much work was being done during compilation: a new
Future which spawned a new `bloop` process was being created for every
dependency, regardless of whether those modules were already being
compiled. Even though `bloop` was probably not duplicating the work,
there was some overhead, and no doubt some lock contention in `bloop`.

If I recall correctly, building Fury from clean would previously take
around 60s. It now appears to take around 30s. Similarly, attempting to
rebuild a fully-compiled Fury using a hot compiler now settles at around
350ms, where it would previously take around 1100ms.
@propensive propensive self-assigned this Nov 18, 2018
@propensive propensive added this to progress in release via automation Nov 18, 2018
@propensive propensive added this to the v0.2.0 milestone Nov 18, 2018
@propensive propensive merged commit e6bf7c7 into master Nov 18, 2018
1 check passed
1 check passed
clahub All contributors have signed the Contributor License Agreement.
Details
release automation moved this from progress to done Nov 18, 2018
@propensive propensive deleted the build-graph-fixes branch Nov 18, 2018
@propensive propensive changed the title Fixes for live build graph, and compilation fixes for live build graph, and compilation Nov 18, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
release
  
done
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant