JavaScript heap out of memory for 10s of MB of source
See original GitHub issueTypeScript Version: 2.4.1 / nightly (2.5.0-dev.20170707)
Code gulpfile.js
// A *self-contained* demonstration of the problem follows...
gulp.task('compile-ts', () => {
const ts = require('gulp-typescript');
const tsProject = ts.createProject('./tsconfig.json');
tsProject.options.module = 1;
const dest = tsProject.options.outDir;
return gulp.src('./src/**/*.ts')
.pipe(tsProject())
.pipe(gulp.dest(dest));
});
tsconfig.json
{
"include": [
"src"
],
"compilerOptions": {
"module": "commonjs",
"target": "esnext",
"noImplicitAny": false,
"sourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"strictNullChecks": false,
"noImplicitThis": true,
"rootDir": "./src/",
"rootDirs": [],
"allowJs": false,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"alwaysStrict": true,
"baseUrl": "",
"charset": "utf8",
"declaration": false,
"inlineSourceMap": false,
"allowSyntheticDefaultImports": false,
"diagnostics": false,
"emitBOM": false,
"forceConsistentCasingInFileNames": false,
"importHelpers": false,
"inlineSources": false,
"isolatedModules": false,
"lib": [
"es6",
"es7",
"dom"
],
"listFiles": true, // default false
"listEmittedFiles": true, // default false
"locale": "zh_CN",
"newLine": "CRLF",
"noEmit": false,
"moduleResolution": "node",
"noEmitHelpers": false,
"noEmitOnError": false,
"noImplicitReturns": false,
"noImplicitUseStrict": false,
"maxNodeModuleJsDepth": 0,
"noLib": false,
"outDir": "./dist/",
"noFallthroughCasesInSwitch": false,
"noResolve": false,
"noUnusedLocals": false,
"noUnusedParameters": false,
"paths": {},
"preserveConstEnums": false,
"pretty": true,
"removeComments": false,
"skipDefaultLibCheck": true, // default false
"skipLibCheck": true, // default false
"stripInternal": false,
"suppressExcessPropertyErrors": false,
"suppressImplicitAnyIndexErrors": true, // default false
"traceResolution": true, // default false
"typeRoots": [],
"types": [],
"watch": false
}
}
Expected behavior:
Actual behavior: Exception i got:
<--- Last few GCs --->
[24442:0x2def9d0] 58440 ms: Mark-sweep 1400.1 (1465.9) -> 1400.1 (1465.9) MB, 1948.3 / 0.0 ms allocation failure GC in old space requested
[24442:0x2def9d0] 60312 ms: Mark-sweep 1400.1 (1465.9) -> 1400.1 (1434.9) MB, 1871.6 / 0.0 ms last resort
[24442:0x2def9d0] 62184 ms: Mark-sweep 1400.1 (1434.9) -> 1400.0 (1434.9) MB, 1871.8 / 0.0 ms last resort
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x3d1f48829891 <JS Object>
2: write [/home/taoqf/feidao/temp/boai-h5-6/1/node_modules/typescript/lib/typescript.js:~9035] [pc=0x3cfdedb6fe70](this=0x1857e443e689 <an Object with map 0xddd4399bc9>,s=0x3c6749682c29 <String[4]: "id">)
3: pipelineEmitExpression [/home/taoqf/feidao/temp/boai-h5-6/1/node_modules/typescript/lib/typescript.js:~66807] [pc=0x3cfdedbd085f](this=0xf51a038dbf9 <JS Global Object>,node=0x29110b...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node::Abort() [gulp]
2: 0x13647ec [gulp]
3: v8::Utils::ReportOOMFailure(char const*, bool) [gulp]
4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [gulp]
5: v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationSpace) [gulp]
6: v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*) [gulp]
7: 0x3cfded28437d
Aborted
More
tsc
works fine.- do not depend on
fp-ts
,fantasyland
andmonet
- if i compile my ts files separately(1 ts file per time), also there is no exception.
- i have searched all the issues already and found no clue. like https://github.com/Microsoft/TypeScript/issues/14628#issuecomment-314133082
Issue Analytics
- State:
- Created 6 years ago
- Reactions:1
- Comments:30 (14 by maintainers)
Top Results From Across the Web
How to Fix JavaScript Heap Out of Memory Error - MakeUseOf
This error usually occurs when the default memory allocated by your system to Node. js is not enough to run a large project....
Read more >FATAL ERROR: Ineffective mark-compacts near heap limit ...
The error occurs when you exceed the default maximum memory allowed for Node.js. All this does is increase the maximum memory allowed.
Read more >JavaScript Heap Out Of Memory Error - OpenReplay Blog
A quick solution that you can use to fix "Heap Out Of Memory Error" in JavaScript. We lay out the causes and how...
Read more >Intermittent JavaScript heap out of memory error ... - Reddit
Intermittent JavaScript heap out of memory error when building Angular app on Azure DevOps build agent. We get this error about once every...
Read more >Performance.memory - Web APIs - MDN Web Docs
The non-standard and legacy performance.memory property returns the size of the JavaScript heap which can be helpful to measure and reduce ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
The OP seems to be caused by a large object structure, @sandersn’s comment in https://github.com/Microsoft/TypeScript/issues/17112#issuecomment-326684693 summarizes the issues.
@cheerun Try
typescript@next
. We have fixed all but a two of the known issues there, and those fixes will also ship with 2.5.3.If you have 10s of megabytes of source then you may still have a problem; that’s what this issue tracks.