microsoft / microsoft/TypeScript-Sublime-Plugin

Plugin slows down Sublime Text

Offen
#716 3 Kommentare 11 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
JavaScript
Sterne
1.7k
Forks
236
Ø Merge
21 T. 13 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Typescript plugin extremely slows down text typing and selection performance on large files like tsserver.js. Slowing down appears even after renaming that file to .txt and opening as Plain Text. This is very annoying when you need to view large logs or csv files.

This behavior is reproducible in clean portable installation of Sublime Text with only TypeScript plugin installed even without opened project and tsconfig.json.

Disabling plugin via Package Control makes Sublime smooth again. Can using *_async api help here? Or is there any setting to disable processing non-js/ts files?

System Info
Item Value
CPUs Intel(R) Core(TM) i5-4430 CPU @ 3.00GHz (4 x 3000)
Memory (System) 15.93GB (9.38GB free)
System Windows 10.0.17763.475 (x64)
Sublime v3.2.1 build 3207 x64 stable channel
Typescript plugin v3.4.1
Plugin Event Profile
This list shows how much time each plugin has taken to respond to each event:

on_activated:
    Default.pane: 0.001s total, mean: 0.000s, max: 0.001s
    TypeScript.typescript.listeners.listeners: 1.334s total, mean: 0.056s, max: 0.265s

on_close:
    Default.pane: 0.000s total, mean: 0.000s, max: 0.000s
    TypeScript.typescript.listeners.listeners: 0.164s total, mean: 0.055s, max: 0.163s

on_deactivated:
    Default.history_list: 0.011s total, mean: 0.000s, max: 0.002s

on_hover:
    Default.symbol: 0.004s total, mean: 0.000s, max: 0.001s
    TypeScript.typescript.listeners.listeners: 3.556s total, mean: 0.155s, max: 0.691s

on_load:
    Default.detect_indentation: 0.003s total, mean: 0.002s, max: 0.003s
    TypeScript.typescript.listeners.listeners: 0.000s total, mean: 0.000s, max: 0.000s
    Default.exec: 0.003s total, mean: 0.001s, max: 0.002s

on_modified:
    TypeScript.typescript.listeners.listeners: 36.134s total, mean: 0.317s, max: 1.174s

on_pre_close:
    Default.history_list: 0.000s total, mean: 0.000s, max: 0.000s

on_selection_modified:
    TypeScript.typescript.listeners.listeners: 88.955s total, mean: 0.217s, max: 1.569s

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

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, die TypeScript plugin listeners für on_modified und on_selection_modified zu profilieren, wenn große Dateien wie tsserver.js als Plain Text geöffnet werden. Vergleiche das Verhalten mit deaktiviertem Plugin und untersuche, ob Sublime Texts *_async EventListener API oder die Dateitypfilterung greift. Als erledigt gilt die Aufgabe, wenn die Eingabe und die Auswahl in großen .txt-, Log- oder CSV-Dateien reaktionsfähig bleiben, ohne das Verhalten bei TypeScript-Dateien zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, typescript
Bereich
performance, tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

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