microsoft / microsoft/TypeScript
Regression performance compiling types in version 5.4.2
Nessuno ha ancora preso questa issue.
- Lingua principale
- Go
- Stelle
- 111k
- Fork
- 14.4k
- Merge medio
- 1g 19h
- PR unite (30g)
- 117
Descrizione
🔎 Search Terms
"regression", "5.4.2", "performance"
🕗 Version & Regression Information
- This changed between versions 5.3.3 and 5.4.2
⏯ Playground Link
No response
💻 Code
Extended diagnostics in version 5.4.2
Files: 4294
Lines of Library: 40640
Lines of Definitions: 180807
Lines of TypeScript: 430513
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 591567
Symbols: 1232510
Types: 4677381
Instantiations: 395496734
Memory used: 2330550K
Assignability cache size: 3974893
Identity cache size: 14482
Subtype cache size: 37794
Strict subtype cache size: 9374
I/O Read time: 0.70s
Parse time: 0.96s
ResolveModule time: 0.58s
ResolveTypeReference time: 0.01s
ResolveLibrary time: 0.01s
Program time: 2.51s
Bind time: 0.62s
Check time: 367.45s
printTime time: 0.00s
Emit time: 0.00s
Total time: 370.58s
Extended diagnostics in version 5.3.3
Files: 4290
Lines of Library: 40241
Lines of Definitions: 180807
Lines of TypeScript: 430513
Lines of JavaScript: 0
Lines of JSON: 0
Lines of Other: 0
Identifiers: 591320
Symbols: 1234773
Types: 699200
Instantiations: 2247099
Memory used: 1308962K
Assignability cache size: 223823
Identity cache size: 14479
Subtype cache size: 28353
Strict subtype cache size: 9128
I/O Read time: 0.73s
Parse time: 1.11s
ResolveModule time: 0.44s
ResolveTypeReference time: 0.01s
ResolveLibrary time: 0.02s
Program time: 2.60s
Bind time: 0.76s
Check time: 13.75s
printTime time: 0.00s
Emit time: 0.00s
Total time: 17.11s
🙁 Actual behavior
The type validation using tsc --noEmit increase more than 20 times using the version 5.4.2 comparing with the version 5.3.3.
In the CI is always hitting the heap memory limit:
🙂 Expected behavior
I expected the compilation to be equivalent in both versions, but it was more than 20 times slower.
Additional information about the issue
No response
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Inizia riproducendo il confronto riportato di tsc --noEmit sul progetto che ha prodotto i diagnostici, usando TypeScript 5.3.3 e 5.4.2. Confronta i diagnostici estesi e isola l’origine dell’aumento del tempo di verifica, della memoria e delle istanziazioni; il lavoro è concluso quando è stata confermata una regressione con una riproduzione mirata o un test di regressione e una correzione validata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- typescript
- Ambito
- compilers, performance
- Tipo di issue
- Bug
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Ferma
- Chiarezza
- Da chiarire
- Idoneità per principianti
- 35/100