microsoft / microsoft/TypeScript

Consider some way of serializing open projects in tsserver, potentially leveraging `.tsbuildinfo` files

Offen
#35,113 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Domain: LS: TSServer Domain: Performance Domain: tsc: --incremental Experimentation Needed In Discussion Needs Proposal Suggestion
Vorherrschende Sprache
Go
Sterne
111k
Forks
14.3k
Ø Merge
1 T. 19 Std.
Gemergte PRs (30 T.)
117

Beschreibung

One thing that users often hit is that file navigation might trigger opening an entire project. Opening an entire project involves

  1. File loading
  2. Scanning/parsing
  3. Resolving dependencies
  4. Keep repeating file loading on dependencies until no new files are found

This is a lot of work! If a user jumps back and forth from this file, it can re-trigger this work even if nothing has changed!

A .tsbuildinfo file is used to save time on cold compiler invocations doing this exact set of work, and to reduce work when something actually has changed. It would be interesting to see whether generating a .tsbuildinfo file after project loads could help cut down on this work.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit zu untersuchen, wie tsserver Projekte öffnet und wie .tsbuildinfo-Dateien generiert und verwendet werden. Vergleiche wiederholte Projektladevorgänge, wenn Dateien unverändert sind, und lege fest, ob die Serialisierung diesen Aufwand reduzieren kann, ohne das Verhalten zu ändern. Als abgeschlossen gilt die Aufgabe, wenn ein abgestimmtes Design vorliegt und belegt ist, dass unveränderte Projekte unnötiges Laden, Parsen und Auflösen von Abhängigkeiten vermeiden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
typescript
Bereich
devtools
Issue-Typ
Feature
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.