You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
We use hash from source file's text as the version.
Because in tsbuild we get semantic diagnostics before emit, the EmitAndSemanticDiagnosticsBuilderProgram's existing assumption was not satisfied (that is changed files are already emitted before getting semantic diagnostics). So in such case, we store list of files to emit later so as to help with that case.
In this we also have a new Builder method to release the program and its source files to ensure that we aren't holding on program after emit and/or semantic diagnostics are complete. That way the builder state can be in memory for comparison and finding out what are new changes that need emitting while creating new program but we aren't holding onto these costly (memory wise) resources. (all the program methods are thus available only till program is released.
File change detected. Starting incremental compilation...
Project 'SubProject 4' is out of date because oldest output 'someOutputFile.js' is older than newest input 'SubProject 2'
Building project 'SubProject 4'...
Updating unchanged output timestamps of project 'SubProject 4'...
Before After
Files: 8305 Files: 8305
Lines: 509635 Lines: 509635
Nodes: 1741406 Nodes: 1741406
Identifiers: 563597 Identifiers: 563597
Symbols: 597262 Symbols: 315957
Types: 175191 Types: 114
Memory used: 3243603K Memory used: 690192K
I/O Read time: 3.23s I/O Read time: 3.28s
Parse time: 4.00s Parse time: 2.31s
Program time: 35.91s Program time: 24.59s
Bind time: 1.75s Bind time: 1.27s
Check time: 15.76s Check time: 0.01s
transformTime time: 15.10s transformTime time: 0.00s
Source Map time: 2.93s Source Map time: 0.00s
commentTime time: 1.85s commentTime time: 0.00s
printTime time: 30.68s printTime time: 0.00s
Emit time: 30.68s Emit time: 0.00s
I/O Write time: 14.47s I/O Write time: 0.00s
Total time: 84.10s Total time: 25.87s
Project 'SubProject 5' is up to date with .d.ts files from its dependencies
Updating output timestamps of project 'SubProject 5'...
Project 'SubProject 6' is up to date with .d.ts files from its dependencies
Updating output timestamps of project 'SubProject 6'...
Project 'SubProject 7' is up to date with .d.ts files from its dependencies
Updating output timestamps of project 'SubProject 7'...
Project 'SubProject 8' is up to date with .d.ts files from its dependencies
Updating output timestamps of project 'SubProject 8'...
Project 'SubProject 9' is up to date with .d.ts files from its dependencies
Updating output timestamps of project 'SubProject 9'...
Solution Total Time:
Before: 84.1, After: 25.87
Found 0 errors. Watching for file changes.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Some notes:
Two things can be done:
EmitAndSemanticDiagnosticsBuilderProgram
's existing assumption was not satisfied (that is changed files are already emitted before getting semantic diagnostics). So in such case, we store list of files to emit later so as to help with that case.Here are the perf numbers:
Local change::
Local change: