Skip to content
This repository has been archived by the owner on Feb 6, 2021. It is now read-only.

Fix for Memory leak #112

Merged
merged 3 commits into from
Oct 4, 2018
Merged

Fix for Memory leak #112

merged 3 commits into from
Oct 4, 2018

Conversation

arthirm
Copy link

@arthirm arthirm commented Sep 24, 2018

Earlier templateCompilerPath was deleted from require.cache alone. But there will be a reference in parent.children as well which was not deleted. This caused a memory leak. Especially when all babel processing runs in parallel, the memory bloated to as big as 7GB for 1 worker alone for an ember application combined with couple of Gigs from other workers, it threw heap out of space.
But deleting the parent reference as well (or not removing the require cache for templateCompilerPath every time) causes the workers to consume only a maximum of 200 MB for the same application.

It is surfacing now because,
AstPlugin.setup is called from lib/require-from-worker.js as part of babel parallelization.
Only when babel parallelization works completely in an app and number of modules to transpile is huge, the number of calls to AstPlugin.setup is also huge and we get heap out of space.

Apps with non parallel babel processing does not go through AstPlugin.setup or the number of calls to it is minimum that we don't get heap out of space.

@rwjblue

stefanpenner added a commit to ember-cli/ember-cli-htmlbars that referenced this pull request Oct 4, 2018
stefanpenner added a commit to ember-cli/ember-cli-htmlbars that referenced this pull request Oct 4, 2018
stefanpenner added a commit to ember-cli/ember-cli-htmlbars that referenced this pull request Oct 4, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants