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

Linker performance #10453

Merged
merged 4 commits into from Feb 28, 2019
Merged

Linker performance #10453

merged 4 commits into from Feb 28, 2019

Conversation

@zodern
Copy link
Member

@zodern zodern commented Feb 14, 2019

  • Updates source-map to 0.5.7 which includes some performance improvements for source nodes. In one app it saves up to 1.2 seconds during full rebuilds
  • Caches the stringified output of dynamic files instead of a source node, which allows skipping stringifying the source node when the dynamic file didn't change since the last build.
  • The main client bundle is not recreated when only dynamic files change. In one app this saves 2 - 3 seconds during rebuilds when a dynamic file is changed. It only stores the latest bundle in the cache for each architecture instead of waiting until the cache has reached its max size to remove old entries. That is to avoid increasing the tool's memory usage, though I am not sure if it is needed.
@smeijer smeijer mentioned this pull request Feb 18, 2019
@sebakerckhof
Copy link
Contributor

@sebakerckhof sebakerckhof commented Feb 28, 2019

On a related note. source-map 0.7.0+ has massive performance improvements with their rust/wasm implementation. @hwillson started looking into it, but because of the wasm loading, the constructor became a promise which didn't play well with it being wrapped in a 'noYieldsAllowed' block:

#9568 (comment)

It then never really was looked into further, but maybe @zodern feels like it 😅

Copy link
Member

@benjamn benjamn left a comment

Looks good! Just a few small suggestions.

tools/isobuild/linker.js Outdated Show resolved Hide resolved
tools/isobuild/linker.js Outdated Show resolved Hide resolved
tools/isobuild/linker.js Outdated Show resolved Hide resolved
tools/isobuild/linker.js Outdated Show resolved Hide resolved
@@ -34,7 +34,7 @@ var packageJson = {
fstream: "https://github.com/meteor/fstream/tarball/cf4ea6c175355cec7bee38311e170d08c4078a5d",
tar: "2.2.1",
kexec: "3.0.0",
"source-map": "0.5.3",
"source-map": "0.5.7",
Copy link
Member

@benjamn benjamn Feb 28, 2019

Note to self: this will require a new dev bundle.

@benjamn benjamn added this to the Release 1.8.1 milestone Feb 28, 2019
@benjamn benjamn force-pushed the linker-performance branch from 1ef095c to bf3a50f Feb 28, 2019
@benjamn benjamn force-pushed the release-1.8.1 branch 2 times, most recently from 3395bdb to 986e0a3 Feb 28, 2019
@benjamn benjamn force-pushed the linker-performance branch from bf3a50f to bb564dd Feb 28, 2019
@benjamn benjamn merged commit ea86f86 into meteor:release-1.8.1 Feb 28, 2019
15 of 17 checks passed
benjamn added a commit that referenced this issue Mar 9, 2019
Adding @zodern as a collaborator with write access (including
triage/review), based on contributions that demonstrate deep understanding
of the meteor/meteor codebase: #9887, #10399, #10452, #10453, #10454

Also updated other parts of CHANGELOG.md to reflect 2019 realities.
benjamn added a commit that referenced this issue Mar 13, 2019
Adding @zodern as a collaborator with write access (including
triage/review), based on contributions that demonstrate deep understanding
of the meteor/meteor codebase: #9887, #10399, #10452, #10453, #10454

Also updated other parts of CHANGELOG.md to reflect 2019 realities.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

3 participants