microsoft / microsoft/TypeScript
Optimize constructing type nodes from types
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Go
- Sterne
- 111k
- Forks
- 14.4k
- Ø Merge
- 1 T. 19 Std.
- Gemergte PRs (30 T.)
- 117
Beschreibung
Originally posted by @weswigham in https://github.com/microsoft/TypeScript/issues/34119#issuecomment-545640573
Yep, looking at the traces I see pretty much all the time spent in
trySymbolTableandgetAliasForSymbolInContainer, which are workers user for calculating visible symbol chains. The whole process is uncached and quite naive right now (it's pretty much the same as it was since TS 1.8, but we rely on it more and more). It has been on my backlog as something that needs to be rewritten with a better more cacheable structure for perf.
There's also a fair chunk of time spent in GC and in path component-related operations that might also need some optimization - I'm guessing the large number of import types we manufacture require a large number of path calculations which end up making a lot of garbage - some caching may be in order here.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die Arbeit an sichtbaren Symbolen in trySymbolTable und getAliasForSymbolInContainer zu profilieren, und untersuche anschließend die im Issue erwähnten Berechnungen der Import-Type-Pfade und die Garbage Collection. Als erledigt gilt die Aufgabe, wenn der Konstruktionspfad bei erhaltenem relevantem Verhalten messbar schneller ist; das Issue nennt jedoch keine Dateien oder auszuführenden Tests.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- typescript
- Bereich
- compilers, performance
- Issue-Typ
- Refactoring
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100