TypeScript: Compilation time significantly slower in 3.7.1-RC vs 3.5.2, essentially the "check time" part.

TypeScript Version: 3.7.1-RC

Search Terms: Compilation time Check time 3.7.1-RC

Code

// takes 25-30 minutes
node --max-old-space-size=8092 "C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.7\tsc.js"
// takes 2-3 minutes
node --max-old-space-size=8092 "C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.5\tsc.js"

Expected behavior: Compilation should take a reasonable amount of time

Actual behavior: Compilation is 10 times slower than 3.5.2 version.

Related Issues: maybe related: https://github.com/Microsoft/TypeScript/issues/24435

Hi, we give a try at typescript 3.7.1-RC today (upgrading from 3.5.2) and we are facing a significant increase of build time.

I’ve launched the compilation with extendedDiagnostics flag and this is the “check time” which is a lot slower.

In 3.7.1-rc:

Files: 532 Lines: 402274 Nodes: 1927658 Identifiers: 684045 Symbols: 1844544 Types: 528324 Memory used: 1857090K Assignability cache size: 337352 Identity cache size: 10477 Subtype cache size: 88675 I/O Read time: 0.15s Parse time: 3.89s Program time: 4.72s Bind time: 2.84s Check time: 1480.74s transformTime time: 9.18s commentTime time: 0.28s I/O Write time: 0.41s printTime time: 22.17s Emit time: 22.25s Total time: 1510.55s

In 3.5.2:

Files: 532 Lines: 400795 Nodes: 2122066 Identifiers: 672829 Symbols: 1707809 Types: 518149 Memory used: 1781530K Assignability cache size: 333702 Identity cache size: 1968 Subtype cache size: 88497 I/O Read time: 0.14s Parse time: 3.51s Program time: 4.22s Bind time: 2.50s Check time: 85.37s transformTime time: 11.09s commentTime time: 0.13s I/O Write time: 0.56s printTime time: 33.09s Emit time: 33.16s Total time: 125.24s

Do you have any clue of what is going on ? I’ve saw nothing in breaking change that could cause that.

Thanks in advance.

the tsconfig.json used:

{
  "compileOnSave": true,
  "compilerOptions": {
    "incremental": false,
    "outDir": "./dist/js",
    "noImplicitAny": false,
    "allowJs": false,
    "checkJs": false,
    "noEmitOnError": true,
    "removeComments": true,
    "sourceMap": false,
    "target": "es5",
    "lib": [
      "dom",
      "es5",
      "scripthost",
      "es2015.promise",
      "es2015.collection",
      "es2015.core",
      "es2015.generator",
      "es2015.iterable",
      "es2015.proxy",
      "es2015.reflect",
      "es2015.symbol",
      "es2015.symbol.wellknown"
    ],
    "rootDir": "./src/js",
    "noResolve": true,
    "module": "amd",
    "moduleResolution": "node",
    "experimentalDecorators": false,
    "jsx": "react"
  },
  "include": [
    "./src/**/*.js",
    "./src/**/*.ts",
    "./src/**/*.tsx",
    "./Scripts/typings/**/*.ts"
  ],
  "exclude": [
    "./Scripts/excludedtypings/**/*.ts",
    "node_modules",
    "node_modules/@types",
    "wwwroot"
  ]
}

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 3
  • Comments: 25 (14 by maintainers)

Most upvoted comments

@amcasey Yep there is definitely significant improvements with this build. We go down from 4.30 min to 1.40 min in full mode (no change in incremental, around 7 seconds) Check time go down from 253.29s to 74.43s

attached: extended diagnostics and prof-process of isolates

extendedDiagnostics_prof-process_3.7.4.zip

extendedDiagnostics_prof-process_3.8.0next.zip